注冊

微信小程序點(diǎn)擊實(shí)現(xiàn)樣式切換功能

2020-09-27
導(dǎo)讀:小程序小實(shí)現(xiàn)點(diǎn)擊切換樣式此功能的方式與普通的不一樣,需要數(shù)據(jù)綁定+data- 去更改標(biāo)簽類名。...

普通的web開發(fā)可以通過JavaScript獲取HTML的Dom結(jié)構(gòu),但是小程序不可以,小程序?qū)崿F(xiàn)此功能的方式:數(shù)據(jù)綁定+data- 去更改標(biāo)簽類名。

微信小程序點(diǎn)擊實(shí)現(xiàn)樣式切換功能

step 1 給選定的標(biāo)志 {{}} & data-num

此處只綁定了一個(gè)類名,也可以綁定N個(gè)類名。

 

  1. class='class1 class2 {{num==1?"active":""}}'
  2. <view class='oil_s' catchtap='changeOil'>
  3. <view class='{{num==1?"active":""}}' data-num='1'>92#汽油</view>
  4. <view class='{{num==2?"active":""}}' data-num='2'>95#汽油</view>
  5. <view class='{{num==3?"active":""}}' data-num='3'>0#汽油</view>

綁定一個(gè)事件 可以給外面的塊綁定,也可以給每一個(gè)里邊的view綁定,如下:

 

  1. <view class='oil_s' >
  2. <view class='{{num==1?"active":""}}' data-num='1' catchtap='changeOil'>92#汽油</view>
  3. <view class='{{num==2?"active":""}}' data-num='2' catchtap='changeOil'>95#汽油</view>
  4. <view class='{{num==3?"active":""}}' data-num='3' catchtap='changeOil'>0#汽油</view>
  5. </view>

唯一的區(qū)別是給事件傳入的 e 不同。  綁定在外面的塊的事件的e ,只有 target才會(huì)有dataset的值。  綁定給每一個(gè)小塊的事件的e ,不管是 target還是currentTarget都會(huì)有dataset的值。 

 

e.target.dataset.num  step 2 寫好初始值

一開始選定哪一個(gè),就給判斷的那個(gè)變量哪個(gè)值

 

  1. data: {
  2. num:1
  3. },

step 3 寫好事件處理函數(shù)

 

  1. changeOil:function(e){
  2. console.log(e);
  3. this.setData({
  4. num:e.target.dataset.num
  5. })
  6. }

原理 是改變一下 用來判斷的那個(gè)變量 num 的值而已。

他人的做法:

我用的類名active ,有的人會(huì)用cur ,【current的簡寫】  有人甚至總結(jié)出了三種方式:

 

  1. 1.通過修改類名 <view class="{{className}}"></view>
  2. 2.添加一個(gè)類名,覆蓋前面的樣式 <view class="helplist {{cur}}"></view>
  3. 3.修改行內(nèi)樣式,覆蓋前面的樣式 <view class="helplist" style="{{currentStyle}}"></view>

第二種方式跟我的一樣,第三種方式最好不要使用,畢竟我們要做一個(gè)性能佳的小程序。  至此,完成。 

微信小程序點(diǎn)擊實(shí)現(xiàn)樣式切換功能

重磅推薦:小程序開店目錄

第一部分:小商店是什么

第二部分:如何開通一個(gè)小商店

第三部分:如何登錄小商店

第四部分:開店任務(wù)常見問題

第五部分:小商店可以賣什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收貨/物流

第九部分:小程序怎么結(jié)算

第十部分:小程序客服

第十一部分:電商創(chuàng)業(yè)

第十二部分:小程序游戲開發(fā)