vue+elementUI換膚解決方案

開發(fā)環(huán)境為
vue + element + sass
將以下組件引入項目
https://gitee.com/klus-liang/element-ui-skin-peeler-component.git
通過用戶選擇顏色轉(zhuǎn)換為css寫入項目<head>中,再通過sass全局變量來訪問顏色
通過監(jiān)聽顏色變化值來生成全局主要sass顏色變量以供使用

watch: {
    async theme(val) {
      if (typeof val !== 'string') return      
        
        for (let i = 10; i >= 0; i--) {
          const o = Number((i / 10).toFixed(2))
          switch (o) {
            case 0.9:
              document
              .getElementsByTagName("body")[0]
              .style.setProperty("--color-primary-09", val+'E6');
              break;
            case 0.8:
              document
              .getElementsByTagName("body")[0]
              .style.setProperty("--color-primary-08", val+'CC');
              break;
            case 0.7:
              document
              .getElementsByTagName("body")[0]
              .style.setProperty("--color-primary-07", val+'B3');
              break;
            case 0.6:
              document
              .getElementsByTagName("body")[0]
              .style.setProperty("--color-primary-06", val+'99');
              break;
            case 0.5:
              document
              .getElementsByTagName("body")[0]
              .style.setProperty("--color-primary-05", val+'80');
              break;
            case 0.4:
              document
              .getElementsByTagName("body")[0]
              .style.setProperty("--color-primary-04", val+'66');
              break;
            case 0.3:
              document
              .getElementsByTagName("body")[0]
              .style.setProperty("--color-primary-03", val+'4D');
              break;
            case 0.2:
              document
              .getElementsByTagName("body")[0]
              .style.setProperty("--color-primary-02", val+'33');
              break;
            case 0.1:
              document
              .getElementsByTagName("body")[0]
              .style.setProperty("--color-primary-01", val+'1A');
              break;
            case 0.0:
              document
              .getElementsByTagName("body")[0]
              .style.setProperty("--color-primary-00", val+'00');
              break;
            default:
              document
              .getElementsByTagName("body")[0]
              .style.setProperty("--color-primary", val);
              break;
          }
        }
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容