主要原理是利用webpack插件webpack-theme-color-replacer提取相關顏色css然后根據配置動態生成替換的css

成都創新互聯專注為客戶提供全方位的互聯網綜合服務,包含不限于成都網站制作、成都網站建設、坊子網絡推廣、小程序定制開發、坊子網絡營銷、坊子企業策劃、坊子品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創新互聯為所有大學生創業者提供坊子建站搭建服務,24小時服務熱線:18982081108,官方網址:www.yijiale78.com
具體實現步驟如下:
1.添加webpack插件,新建文件webpack/themePlugin.js
const ThemeColorReplacer = require('webpack-theme-color-replacer')
const forElementUI = require('webpack-theme-color-replacer/forElementUI')
const config = require('../src/config/appConfig')
module.exports = new ThemeColorReplacer({
fileName: 'css/theme-colors.[contenthash:8].css',
matchColors: [
...forElementUI.getElementUISeries(config.themeColor), //element-ui主色系列
// '#0cdd3a', //自定義顏色
],
changeSelector: forElementUI.changeSelector,
isJsUgly: process.env.NODE_ENV !== 'development',
// injectCss: false,
// resolveCss(resultCss) { // optional. Resolve result css code as you wish.
// return resultCss + youCssCode
// }
})matchColors數組中可配置多個自定義要替換的主題色
2.在vue.config.js中添加這個插件
const themePlugin=require('./webpack/themePlugin');
module.exports = {
configureWebpack: {
plugins: [
themePlugin
]
}
}
3.新建文件themeColorClient.js
import client from 'webpack-theme-color-replacer/client'
import forElementUI from 'webpack-theme-color-replacer/forElementUI'
import appConfig from '@/config/appConfig'
export let curColor = appConfig.themeColor
// 動態切換主題色
export function changeThemeColor(newColor) {
var options = {
newColors: [...forElementUI.getElementUISeries(newColor)],
}
return client.changer.changeColor(options, Promise)
.then(() => {
curColor = newColor
localStorage.setItem('theme_color', curColor)
});
}
export function initThemeColor() {
const savedColor = localStorage.getItem('theme_color')
if (savedColor) {
curColor = savedColor
changeThemeColor(savedColor)
}
}
4.在需要的時候調用 initThemeColor初始化顏色 changeThemeColor改變主題顏色
import { initThemeColor,changeThemeColor } from './utils/themeColorClient'
initThemeColor()
changeThemeColor('#F56C6C')//傳入顏色格式應該為十六進制顏色值,'red'類似顏色暫不支持
具體細節請參考https://github.com/hzsrc/vue-element-ui-scaffold-webpack4
到此這篇關于vue在線動態切換主題色方案的文章就介紹到這了,更多相關vue 動態切換主題內容請搜索創新互聯以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持創新互聯!
當前題目:vue在線動態切換主題色方案
標題路徑:http://www.yijiale78.com/article44/gsopee.html
成都網站建設公司_創新互聯,為您提供微信公眾號、ChatGPT、關鍵詞優化、企業網站制作、營銷型網站建設、用戶體驗
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯