js换肤(自定义颜色)实现

先说已排除的方法

1.修改less/scss

由于原理,js修改less/scss/css是难以实现的,只能通过生成文件->引入->重新打包这一几乎不可能存在的方式来进行,所以不要继续寻找此类方法了。

2.行内样式

vue/react都支持在行内样式中嵌入变量,但是行内样式不能使用css选择器,难以批量进行,如果应用此法,代码必将非常麻烦不优雅,会给开发提供非常大的阻力。

我的方案

兼容基本所有浏览器,一个取巧的js

let newColor = 'green'
let mainColor = document.getElementsByClassName('main-color');
for(let i=0; i < mainColor.length; i++) {
  mainColor[i].style.color = newColor
}

但是这种方法只对当前页面有效,重新渲染需要重新调用

至于性能,产品已经提出了如此需求,性能问题当然产品背锅啦~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值