主要原理是利用webpack插件webpack-theme-color-replacer提取相关颜色css然后根据配置动态生成替换的css

具体实现步骤如下:

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.cppcns.com/wangluo/javascript/303974.html

vue动态切换css文件_vue在线动态切换主题色方案相关推荐

  1. js动态载入css文件,原生JS动态加载JS、CSS文件及代码脚本(示例代码)

    var DynamciLoadUtil = { // 动态加载外部js文件,并执行回调 loadJS: function(url, callback){ var script = document.c ...

  2. vue动态切换css文件_vue实现样式之间的切换及vue动态样式的实现方法

    编程之家收集整理的这篇文章主要介绍了vue实现样式之间的切换及vue动态样式的实现方法,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考. 前言 既然我们选择了vue,那么在做东西时就不要想 ...

  3. vue引用自定义.css文件 - 语法篇

    vue如何引用外部自定义的.css文件 ? 一般都会因为存在权重或优先级设置的问题才会侧意引用: [详情进入查看:如何在scoped不污染组件样式的前提下,实现el-input组件样式覆盖?] 再者, ...

  4. Java读取pdf模板,并动态生成pdf文件,如动态生成准考证

    Java读取pdf模板,并动态生成pdf文件,如动态生成准考证 ​ 前几天遇到了一个生成准考证的需求,并提供用户下载,然后百度了一圈还是觉得使用itextpdf这个框架好用点.但是还需要找到一个能创建 ...

  5. Vue 定义全局css文件

    Vue 定义全局css文件 作用:便于管理共同样式,可以在项目任意一处引入该样式,便于区分引入的样式库 全局css内容在这里插入图片描述,写入共同使用的样式,在这里也可以使用媒体查询 css样式在ma ...

  6. vue动态发布到线上_vue在线动态切换主题色方案

    主要原理是利用webpack插件webpack-theme-color-replacer提取相关颜色css然后根据配置动态生成替换的css 具体实现步骤如下: 1.添加webpack插件,新建文件we ...

  7. vue动态切换css文件_如何在vue组件中动态的引入css文件?

    问题描述 如标签描述的不准确,请见新直能分支调二浏页器朋代说谅 我的需求是开的接都上的和,近很触是没他电同近很触是没发多套皮肤,打包的时候只加载其中某一种的皮肤(不需要动态换肤),因为css文件过大, ...

  8. vue在线动态切换主题色方案

    主要原理是利用webpack插件webpack-theme-color-replacer提取相关颜色css然后根据配置动态生成替换的css,具体实现步骤如下: 1.添加webpack插件,新建文件we ...

  9. php 压缩js css文件,PHP实现动态压缩js与css文件的方法

    本文实例讲述了PHP实现动态压缩js与css文件的方法.分享给大家供大家参考,具体如下: 正式发布产品时,我们希望将项目里的js,css合并压缩,以减少http请求.防止轻易查看源代码. 使用 只需要 ...

最新文章

  1. 使用Source Safe for SQL Server解决数据库版本管理问题
  2. 如何实现php自动备份数据库,使用php自动备份数据库表的实现方法
  3. idea中配置个人注解代码模板
  4. 思科路由和交换限制用户出外网的几种策略
  5. POJ2528的另一种解法(线段切割)
  6. IOS逆向【2】-cydia之开发者模式
  7. 【iCore4 双核心板_FPGA】例程十一:FSMC总线通信实验——独立地址模式
  8. python 3.8.2_python-3.8.2-docs-html
  9. 3-3:HTTP协议之request和respond及常见请求方法和常见状态码
  10. bootstap-栅格系统
  11. Redis数据结构——跳跃表-skiplist
  12. 事业单位计算机知识c语言,事业单位考试计算机基础知识C语言程序设计
  13. VS2005最近项目和最近文件清除
  14. JavaScript高级程序设计第四版
  15. 实习生去公司都干些啥
  16. Home Assistant 自动化
  17. 系统状态空间模型c语言,【单选题】能完全描述系统动态行为的数学模型是() A. 传递函数 B. 微分方程 C. 状态 空间表...
  18. unity打包的安卓游戏在某些设备显示异常问题解决
  19. linux环境下常用的查找命令find、which、grep
  20. 解决苹果手机点击输入框页面自动放大问题

热门文章

  1. 高通MSM8909:LCD hx8394d驱动调试
  2. 求解马走棋问题(回溯法)
  3. C++打开网页,发起QQ对话,调用外部exe程序
  4. 键盘快捷键使用,背熟这些你就无需再用鼠标了!
  5. 攻防世界各类题目相关
  6. keras交通信号识别(分类)
  7. 配置OSPF认证【eNSP实现】
  8. HTTP协议和URLConnection使用
  9. 大学生笔记本购买指南——扫盲版(2019)
  10. torch.bmm()和torch.matmul()函数的用法和区别,矩阵相乘