欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信小程序換膚功能實(shí)現(xiàn)代碼(思路詳解)

 更新時(shí)間:2020年08月25日 16:18:12   作者:DDD199800  
這篇文章主要介紹了微信小程序換膚功能實(shí)現(xiàn)代碼,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

在手機(jī)、電腦使用頻率如此高的當(dāng)下,應(yīng)用可以更換皮膚,以提升美觀性,并減輕屏幕對(duì)眼睛的刺激,無(wú)疑對(duì)用戶體驗(yàn)有很大的幫助

實(shí)現(xiàn)功能

要實(shí)現(xiàn)如上更換皮膚的效果,有幾個(gè)思路:
1.準(zhǔn)備皮膚相關(guān)的wxss,引入到app.wxss中,方便每個(gè)頁(yè)面使用;
2.設(shè)置皮膚時(shí),動(dòng)態(tài)改變wxml中元素的類名或id,使頁(yè)面應(yīng)用對(duì)應(yīng)的皮膚;
3.將選中皮膚的值保存在小程序本地緩存中,保證其他頁(yè)面及下一次打開(kāi)小程序時(shí),頁(yè)面展示正確的皮膚;
下面介紹一些實(shí)現(xiàn)的細(xì)節(jié)

wxml

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

wxml部分比較簡(jiǎn)單,只需要?jiǎng)討B(tài)切換id即可,注意因?yàn)閜age無(wú)法動(dòng)態(tài)設(shè)置背景色,所以這里的最外層需要width: 100%;height: 100%;,否則將無(wú)法使皮膚鋪滿頁(yè)面。

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;
}

寫(xiě)好皮膚對(duì)應(yīng)的顏色樣式,直接放入app.wxss中即可,如果樣式過(guò)多,可以使用單獨(dú)的wxss文件,方便管理。

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

js

存儲(chǔ)選中的皮膚值

//wxml
//<view bindtap="setSkin" data-flag='yellow'>橘黃</view> 
//bindtap事件函數(shù)
 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使頁(yè)面立即切換id,使用wx.setStorage存儲(chǔ)值,app.setSkin是定義在app.js上的公共方法,下面會(huì)有介紹

//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提供給所有頁(yè)面調(diào)用,并通過(guò)已有的皮膚顏色,設(shè)置頭部和導(dǎo)航區(qū)域的背景及文字顏色。

打開(kāi)一個(gè)普通wxml頁(yè)面,并設(shè)置皮膚

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

在onLoad及onShow觸發(fā)時(shí)設(shè)置皮膚,這里的onShow是為了避免重新設(shè)置皮膚時(shí),頁(yè)面還顯示上一次的皮膚,由于首次加載會(huì)設(shè)置兩次,onLoad里的app.setSkin其實(shí)可以去掉。

至此,一個(gè)精美的設(shè)置皮膚功能就實(shí)現(xiàn)了,小伙伴們快去試一試吧!

總結(jié)

到此這篇關(guān)于微信小程序換膚功能實(shí)現(xiàn)代碼(思路詳解)的文章就介紹到這了,更多相關(guān)微信小程序換膚內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

最新評(píng)論