js改变字体颜色_前端更换自定义主题颜色的解决方案

我的一个产品化项目里产品提了一个需求就是可以更换主题颜色,不说废话直接上干货。

原理就是通过颜色选择器用户可以在页面选择指定的颜色然后通过js操作css变量覆盖。如果需要永久更换需要后端的配合吧选择的颜色传递给后端,然后每次页面初始化的时候再通过js操作css变量

首先把项目里所有的需要更换的主题css集合到一个样式文件里,这里运用了css的原生变量。

:root {
    --tn-nav-color: #4e6e53;
}
/*顶部导航栏的标题颜色*/
.tn-nav .tn-nav-menu .current-system {
    color: var(--tn-nav-color);
}

其次页面的选择器选择颜色(我这里用的是layui的选择器)就不上图了

重点来了如何通过js操作css变量

var root = document.querySelector(':root');
   $scope.changeColor = function(color){
       root.style.setProperty('--tn-nav-color',color)
   }
layui.use('colorpicker', function(){
    var colorpicker = layui.colorpicker;
    //渲染
    colorpicker.render({
        elem: '#test1' //绑定元素
        ,done: function(color){ //颜色改变的回调
            console.log(color)
            $scope.list.color = 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值