前端切换主题

JavaScript011

前端切换主题,第1张

1.theme.scss

2.vue.config.js 添加全局scss文件

3. App.vue 切换主题时 设置该属性

window.document.documentElement.setAttribute('data-theme', newVal)

项目的需求是: 根据后台返回的配色信息,前端根据返回配色信息进行配色全局引用到小程序

百度和Google查了一番,都只查到用添加类的方式,但是不满足需求,因为类里面的颜色都是写死的,我是想要样式动态,最后无奈想到全局变量的方式解决切换主题

具体实现:(在app.js文件中将小程序主题加载完成)

改变tabbar(我这里只改的图标颜色,如需改变背景色,可添加修改背景样式进行修改)

页面实现改变主题色:

组件中实现改变主题色:(大致都是一样的处理方式)

总结: 这种方法虽可以改变主题,但是也是有缺陷,比如每个页面去添加行内样式和每个页面去改变导航栏主题色,都是比较繁琐和麻烦的,而且页面改变导航栏主题色的时候,会有瞬间闪屏(真机上展示效果比编辑器好多了,所以闪屏问题还算能接受),但最后实现了项目需求,也还不错.如你有更好的的方式方法,请留言告知,相互学习才能更快进步.