wxml

<view class="page" id='{{skin}}'> <view class="container">...</view>
</view>

wxml部分比较简单,只需要动态切换id即可,注意因为page无法动态设置背景色,所以这里的最外层需要width: 100%;height: 100%;,否则将无法使皮肤铺满页面。

wxss

/* app.wxss主题颜色 *//* 深黑 */
#dark-skin{background: #000;
}
#dark-skin .bColor{background: #333;color: #999;
}
#dark-skin .borderColor{border-color:#999;
}
/* 粉红 */
#red-skin{background: #f9e5ee;
}
#red-skin .bColor{background: #f9e5ee;color: #8e5a54;
}
#red-skin .borderColor{border-color:#8e5a54;
}
/* 橘黄 */
#yellow-skin{background: #f6e1c9;
}
#yellow-skin .bColor{background: #f6e1c9;color: #8c6031;
}
#yellow-skin .borderColor{border-color:#8c6031;
}

app.wxss

@import "style/skin/dark.wxss";

js

//wxml
//<view bindtap="setSkin" data-flag='yellow'>橘黄</view>
//bindtap事件函数setSkin:function(e){var skin = e.target.dataset.flag;this.setData({skin: skin + '-skin',openSet:false})wx.setStorage({key: "skin",data: skin + '-skin'})app.setSkin(this);}

app.js

//app.js
App({data: {},setSkin:function(that){wx.getStorage({key: 'skin',success: function(res) {if(res){that.setData({skin: res.data})var fcolor = res.data == 'dark-skin' ? '#ffffff' : '#000000',obj = {'normal-skin':{color:'#000000',background:'#f6f6f6'},'dark-skin': {color: '#ffffff',background: '#000000'},'red-skin': {color: '#8e5a54',background: '#f9e5ee'},'yellow-skin': {color: '#8c6031',background: '#f6e1c9'},'green-skin': {color: '#5d6021',background: '#e3eabb'},'cyan-skin': {color: '#417036',background: '#d1e9cd'},'blue-skin': {color: '#2e6167',background: '#bbe4e3'}},item = obj[res.data],tcolor = item.color,bcolor = item.background;wx.setNavigationBarColor({frontColor: fcolor,backgroundColor: bcolor,})wx.setTabBarStyle({color: tcolor,backgroundColor: bcolor,})}}})}
})

app.setSkin提供给所有页面调用,并通过已有的皮肤颜色,设置头部和导航区域的背景及文字颜色。

打开一个普通wxml页面,并设置皮肤

const app = getApp();Page({data: {skin: 'normal-skin',},onLoad: function() {app.setSkin(this); },onShow:function(){app.setSkin(this); }
})

在onLoad及onShow触发时设置皮肤,这里的onShow是为了避免重新设置皮肤时,页面还显示上一次的皮肤,由于首次加载会设置两次,onLoad里的app.setSkin其实可以去掉。

微信小程序主题换肤功能相关推荐

  1. 微信小程序 实现换肤功能

    参考链接: (1)微信小程序实现换肤功能 https://www.jb51.net/article/136445.htm (2)微信小程序实现换肤功能 https://blog.csdn.net/qq ...

  2. 小程序服务器换肤,微信小程序实现换肤功能

    pc或者移动端实现换肤功能还是比较简单的,大致就是需要换肤的css,还有正常的css:把当前皮肤类型存入本地:然后通过js读取并判断当前应该加载哪套css. 由于微信小程序没有操作wxss的api,所 ...

  3. 为微信小程序增加换肤功能

    起源 之前,我做了一个展示类的微信小程序,本来都快要完结的了,可是突然,我才听说还要给小程序增加一个换肤功能,这个换肤功能可不是简单的写两套不同的样式表就行了,因为他要可以在后台动态替换背景,底图,文 ...

  4. 微信小程序实现换肤功能

    在手机.电脑使用频率如此高的当下,应用可以更换皮肤,以提升美观性,并减轻屏幕对眼睛的刺激,无疑对用户体验有很大的帮助 实现功能 要实现如上更换皮肤的效果,有几个思路: 1.准备皮肤相关的wxss,引入 ...

  5. 微信小程序之换肤的功能

    pc或者移动端实现换肤功能还是比较简单的,大致就是需要换肤的css,还有正常的css:把当前皮肤类型存入本地:然后通过js读取并判断当前应该加载哪套css. 由于微信小程序没有操作wxss的api,所 ...

  6. 借鉴华为HiLink实现微信小程序智能配网功能

    借鉴华为HiLink实现微信小程序智能配网功能 微信小程序介绍 微信公众号智能配网 Smartconfig实现原理 Smartconfig技术的弊端 AP配网技术的出现 微信小程序智能配网 模块端设置 ...

  7. nodejs android 推送,利用Nodejs怎么实现一个微信小程序消息推送功能

    利用Nodejs怎么实现一个微信小程序消息推送功能 发布时间:2021-01-20 13:55:29 来源:亿速云 阅读:92 作者:Leah 今天就跟大家聊聊有关利用Nodejs怎么实现一个微信小程 ...

  8. php 微信小程序 循环 多选,微信小程序实现多选功能

    本文为大家分享了微信小程序实现多选功能的具体代码,供大家参考,具体内容如下 代码: {{num + 1}}/{{quesyion.length}}{{question[num][0]}} A {{qu ...

  9. 如何实现消息功能_如何实现微信小程序的轮盘抽奖功能

    为了吸引用户,商家会做一些活动,利用赠送或充值的积分来进行抽奖,现在来讲下微信小程序如果实现轮盘抽奖的功能,先看下图: 上面展示的就是轮盘抽奖,一共有六个奖项,其中一个是"不中奖" ...

  10. 微信小程序可以实现很多功能

    微信小程序可以实现很多功能,今天就教大家如何利用小程序插件来实现这些功能:  1.直播 你可以在「上线了」选择一个电商(或超级云名片-电商版)小程序模板,在"应用中心"里添加小程序 ...

最新文章

  1. CEGUI中文处理(补)
  2. java中的基本数据类型和运算符_【Java基础】基本数据类型和运算符
  3. iis设置服务器文件权限设置,iis7如何配置写入权限以上传文件---急急急
  4. java中 与%_java中“/”与“%”的区别
  5. Compiler__visual_studio_2010_pro 激活码
  6. python表示语句块采用_Python学习日记
  7. 毕设系列之 -- 基于大数据的全国热门旅游景点数据分析与可视化
  8. 数据结构课程设计——药店的药品销售统计系统(排序应用)
  9. 安装sql2000提示html,安装sql2000数据库提示:command line option syntax error
  10. catia切割红色框框_如何在CATIA中对零件的实体进行切割,详细始末
  11. 开启更优网络的时代:Po.et迈入主网
  12. python股票量化交易(10)---使用机器学习算法预测股票涨跌
  13. SIM900A通过基站定位
  14. 宾馆如何锁定计算机,酒店密码锁怎么反锁 公寓酒店密码门锁使用操作说明
  15. Educational Codeforces Round 121 (Rated for Div. 2) unr场 A B C
  16. 软考系统设计架构师经验与教训分享
  17. 小程序可以删除或者注销吗
  18. python简单小游戏代码-python基础练习之几个简单的游戏
  19. composer安装laravel指定版本
  20. hive常用函数(一)

热门文章

  1. 怎么尽量避免 电脑辐射 保护视力
  2. 2020信息安全工程师考试大纲
  3. Getting Sart with OpenMPI On Federa 14 X86_64
  4. codeforces 1019C Sergey's problem
  5. android和电脑动态连接,Android用户?现在起,你的手机也能和电脑无缝连接了
  6. 基于cruise的燃料电池功率跟随仿真,在wltc工况下跟随效果好
  7. sun.net.ftp.FtpClient 匿名登录时提示密码不可为空。
  8. css3按钮好看的特效(一)
  9. 中计播客,让新闻流动起来(内有彩蛋)
  10. RAW数据批量格式转换matlab脚本