在手机、电脑使用频率如此高的当下,应用可以更换皮肤,以提升美观性,并减轻屏幕对眼睛的刺激,无疑对用户体验有很大的帮助
实现功能
要实现如上更换皮肤的效果,有几个思路:
1.准备皮肤相关的wxss,引入到app.wxss中,方便每个页面使用;
2.设置皮肤时,动态改变wxml中元素的类名或id,使页面应用对应的皮肤;
3.将选中皮肤的值保存在小程序本地缓存中,保证其他页面及下一次打开小程序时,页面展示正确的皮肤;
下面介绍一些实现的细节
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中即可,如果样式过多,可以使用单独的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); }
这里使用setData使页面立即切换id,使用wx.setStorage存储值,app.setSkin是定义在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' "htmlcode">const app = getApp(); Page({ data: { skin: 'normal-skin', }, onLoad: function() { app.setSkin(this); }, onShow:function(){ app.setSkin(this); } })在onLoad及onShow触发时设置皮肤,这里的onShow是为了避免重新设置皮肤时,页面还显示上一次的皮肤,由于首次加载会设置两次,onLoad里的app.setSkin其实可以去掉。
至此,一个精美的设置皮肤功能就实现了,小伙伴们快去试一试吧!
总结
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月13日
2024年11月13日
- 梁咏琪.1996-爱自己【EEI】【WAV+CUE】
- IGN经典逆天骚操作名著——《墙头草修炼手册》
- 突然爆火的“网红游戏”,真的有那么多人玩吗?
- 何老师客串《浪人崛起》了?盘点与明星撞脸的角色!
- 【原神】关于星鹫赤羽对珐芙琴班配队下珐露珊主C的适配度分析
- 【原神】V5.1攻略 | 迪西雅角色简评
- 【原神】大日御舆顶端怎么上去
- 胥拉齐《感谢有你》DTS-WAV
- 罗海英《金牌歌后》【WAV+CUE】
- 林叶《林叶·夜》【WAV/分轨】
- 群星《国语经典名曲01》音乐磁场系列[WAV+CUE][1G]
- 齐豫《滚石24K》24K金碟珍藏版系列[低速原抓WAV+分轨][1G]
- 齐秦《齐秦[三洋母带] 》1:1母盘直刻限量版[WAV分轨][1G]
- 英雄联盟双城之战第二季在哪里看 双城之战第二季观看地址分享
- 宝可梦大集结公测耿鬼怎么获取 耿鬼获取方法一览