咨询热线

0371-86158370

基于vue和scss采用uniapp开发主题皮肤更换的实现

如果您正在寻找相关产品或有其他疑问,可随时拨打服务热线,或点击下方按钮与我们在线交流!

2022-05-06 16:29:07 发布者:海融软件
关于基于vue和scss采用uniapp开发主题皮肤更换的实现这个疑惑,是在河南IT软件服务商中一个比较常见的疑惑了,那么如何解决这个疑惑呢,继续阅读,接下来进行详细的介绍。

在小程序开发过程中,基于Vue如何使用scss实现换肤(更换主题)功能的开发?


创软小程序开发团队经过梳理后简单整理如下。


首先,.scss 文件申明如下


$color-primary:#fa436a; /* 主题颜色 */
$color-primary-green:green; /* 更换的颜色 */
$color-primary-blue:blue; /* 更换的颜色 */


@mixin color_primary($color){/*通过该函数设置字体颜色,后期方便统一管理;*/
  color:$color;
  
  [data-theme="green"] & {
    color:$color-primary-green;
  }
  [data-theme="blue"] & {
    color:$color-primary-blue;
  }
  
}


/* 更换背景颜色采用上面一样的逻辑 */



其次,在页面引用中的代码

.price{
    /*color: $color-primary;*/  /* 原始引用方式,错误 */
    @include color_primary($color-primary); /* 采用函数调用 */
}


最后,在js中设置更换皮肤

window.document.documentElement.setAttribute('data-theme', 'green'); /* */


Vue中如何使用scss实现换肤功能的主要原理


通过设置html的attribute属性在封装的函数中进行判断,进行相应的设置不同的颜色


css中 [ ] 可以识别到在html标签上设置的属性,所以在html上对应属性发生变化时,就会执行相应的样式,


这一步有点类似于平时给div添加一个.active属性,css自动执行相应样式。



相关产品
更多推荐
科技·质量·服务·创新

科技·质量·服务·创新

提交需求

如果您对我们的产品感兴趣,或者我们有什么可以帮助到您的,您可以随时在线与我们沟通。 当然您也可以在下面给我们留言,我们将热忱为您服务!

快速响应给予技术咨询答复

专业优质软件服务

成熟领先产品解决方案

专业可靠合作伙伴

免费咨询 0371-86158370
免费获取报价

获取报价

销售热线销售热线:0371-86158370

返回顶部

首页 在线咨询在线咨询 一键拨打一键拨打