微信小程序?qū)崿F(xiàn)滑動(dòng)切換自定義頁(yè)碼的方法分析
本文實(shí)例講述了微信小程序?qū)崿F(xiàn)滑動(dòng)切換自定義頁(yè)碼的方法。分享給大家供大家參考,具體如下:
效果如下:

這里三個(gè)圖片使用了swiper組件進(jìn)行輪播,下方的頁(yè)碼數(shù)字1、2、3會(huì)隨著圖片的切換變動(dòng)位置
在微信小程序中我們是無(wú)法操作dom的,那么
var div = document.getElementById('id');
div.setAttribute("class", "className");
這種方式實(shí)現(xiàn)。
然后我們可以考慮使用hidden或者wx:if的方式,將三個(gè)頁(yè)碼顯示的view進(jìn)行輪流顯示/隱藏操作。但是不知道為什么這種方式只支持一次操作
最后,使用了display:none/block來(lái)達(dá)到影藏/顯示狀態(tài)的切換,這個(gè)display是寫在wxml文件中的
<view class="bottomView" >
<view class="bottom1" style="display:{{bottomHidden1}}" >
<view class="pageCur">
<text class="textPageCur textFont">{{index+1}}-5</text> //index是因?yàn)樯戏讲捎昧?lt;block wx:for="{{itemInfor}}" >顯示內(nèi)容,index從0開始計(jì)數(shù)便是當(dāng)前下標(biāo)
</view>
<view class="buttomImg">
<image clss="horImg" mode="top left" src="../img/horizontal.jpg"></image>
</view>
</view>
<view class="bottom2" style="display:{{bottomHidden2}}">
<view class="pageCur">
<text class="textPageCur textFont" > {{index+1}}-5</text>
</view>
<view class="buttomImg">
<image clss="horImg" mode="top left" src="../img/horizontal.jpg"></image>
</view>
</view>
<view class="bottom3" style="display:{{bottomHidden3}}">
<view class="pageCur">
<text class="textPageCur textFont">{{index+1}}-5</text>
</view>
<view class="buttomImg">
<image clss="horImg" mode="top left" src="../img/horizontal.jpg"></image>
</view>
</view>
</view>
以上這就是頁(yè)碼顯示部分,頁(yè)碼的組成包括一個(gè)text和一個(gè)image(下方白色橫線),這個(gè)內(nèi)容嵌套在<swiper-item></swiper-item>中
bottomView采用position:fixed的定位方式固定在底部設(shè)置高和寬,bottom3、2、1采用position:absolute的方式。需要注意的是,如果在bottomView使用了display:flex,將無(wú)法使用position。所以在這一部分未采用flex。但是上面的文字和圖片部分采用的是display:flex實(shí)現(xiàn)的,這種方式比較簡(jiǎn)單
在swiper中,綁定了bindchange="swiperChange"方法,用于在頁(yè)面切換時(shí)觸發(fā)下方頁(yè)碼的變化動(dòng)作,在js文件中該方法如下:
Page({
data: {
bottomHidden1:"block",
bottomHidden2: "none" ,
bottomHidden3: "none" ,
},
swiperChange:function(event){
var currentView=event.detail.current; //此處使用了swiper的bindchange事件帶過來(lái)的參數(shù)current,這個(gè)參數(shù)從0開始計(jì)數(shù),內(nèi)容為當(dāng)前頁(yè)碼
var isHidden1 ="";
var isHidden2 ="";
var isHidden3 ="";
switch (currentView) {
case 1:
isHidden1 = "none";
isHidden2 = "block";
isHidden3 = "none";
break;
case 2:
isHidden1 = "none";
isHidden2 = "none";
isHidden3 = "block" ;
break;
case 0:
isHidden1 = "block";
isHidden2 = "none";
isHidden3 = "none";;
break;
}
this.setData({
bottomHidden1:isHidden1,
bottomHidden2: isHidden2,
bottomHidden3: isHidden3
});
},
希望本文所述對(duì)大家微信小程序開發(fā)有所幫助。
相關(guān)文章
javascript動(dòng)態(tài)加載實(shí)現(xiàn)方法一
這兩天,沒什么太多的事情,好吧,我承認(rèn),是我這兩天不想做公司的項(xiàng)目,因?yàn)槲彝话l(fā)奇想,其實(shí)也不算突發(fā)奇想,算是對(duì)以前的想法的實(shí)現(xiàn),就是把JS當(dāng)做Java來(lái)寫2012-08-08
javascript設(shè)計(jì)模式 – 備忘錄模式原理與用法實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 備忘錄模式,結(jié)合實(shí)例形式分析了javascript備忘錄模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
微信小程序教程系列之頁(yè)面跳轉(zhuǎn)和參數(shù)傳遞(6)
這篇文章主要為大家詳細(xì)介紹了微信小程序教程系列之頁(yè)面跳轉(zhuǎn)和參數(shù)傳遞,微信小程序提供了3種頁(yè)面跳轉(zhuǎn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
JS中實(shí)現(xiàn)replaceAll的方法(實(shí)例代碼)
本文是對(duì)JS中實(shí)現(xiàn)replaceAll的方法進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來(lái)參考下,希望對(duì)大家有所幫助2013-11-11
JavaScript創(chuàng)建一個(gè)歡迎cookie彈出窗實(shí)現(xiàn)代碼
歡迎cookie想必大家早有耳聞,利用cookie記錄用戶狀態(tài)信息,當(dāng)用戶再次訪問的時(shí)候彈出歡迎框,個(gè)人感覺還不錯(cuò)吧,希望對(duì)你學(xué)習(xí)cookie有所幫助2013-03-03
JavaScript的ES5實(shí)現(xiàn)繼承的4種常用方法小結(jié)
繼承是面向?qū)ο筌浖夹g(shù)當(dāng)中的一個(gè)概念,這篇文章主要為大家詳細(xì)介紹了JavaScript ES5實(shí)現(xiàn)繼承的4種常用方法,感興趣的小伙伴可以了解一下2024-03-03
JS實(shí)現(xiàn)拖拽元素時(shí)與另一元素碰撞檢測(cè)
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)拖拽元素時(shí)與另一元素碰撞檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08

