微信小程序?qū)崿F(xiàn)點(diǎn)擊導(dǎo)航條切換頁(yè)面
本文實(shí)例為大家分享了微信小程序?qū)崿F(xiàn)點(diǎn)擊導(dǎo)航條切換頁(yè)面的具體代碼,供大家參考,具體內(nèi)容如下
我錄制了個(gè)gif如下,黃色部分是不可以滑動(dòng)的,藍(lán)色部分可以滑動(dòng)。
代碼解說(shuō):
- 首先我在js自定義了navState參數(shù)用于判斷導(dǎo)航的當(dāng)前狀態(tài),
- 定義了data-index用于js中動(dòng)態(tài)修改導(dǎo)航的當(dāng)前狀態(tài),
- nav-switch-style為選擇導(dǎo)航條時(shí)的樣式,
- 不可滑動(dòng)視圖切換很簡(jiǎn)單,用wx:if判斷狀態(tài)顯示相應(yīng)頁(yè)就好了,
- 滑動(dòng)頁(yè)視圖切換要用到swiper和 swiper-item,
- 用bindchang方法監(jiān)聽(tīng)滑塊,current 改變時(shí)會(huì)觸發(fā) change 事件(還有個(gè)bindanimationfinish方法監(jiān)聽(tīng)也是可以用的,詳細(xì)請(qǐng)看官方文檔)
- 動(dòng)態(tài)的綁定了current滑塊的index,這樣就可以實(shí)現(xiàn)點(diǎn)擊導(dǎo)航條滑塊跟著滾動(dòng),
- 相反的,當(dāng)滑動(dòng)滑塊時(shí),就可以根據(jù)current的值來(lái)動(dòng)態(tài)修改導(dǎo)航的狀態(tài)了。
wxml代碼:
<!-- 導(dǎo)航條 --> <view class="nav"> <view bindtap="navSwitch" data-index="0" class="{{navState==0 ? 'nav-switch-style':''}}">頁(yè)面一</view> <view bindtap="navSwitch" data-index="1" class="{{navState==1 ? 'nav-switch-style':''}}">頁(yè)面二</view> <view bindtap="navSwitch" data-index="2" class="{{navState==2 ? 'nav-switch-style':''}}">頁(yè)面三</view> </view> <!-- 不可滑動(dòng)頁(yè) --> <view> <view wx:if="{{navState==0}}" class="style-default">1</view> <view wx:elif="{{navState==1}}" class="style-default">2</view> <view wx:else="{{navState==2}}" class="style-default">3</view> </view> <!-- 滑動(dòng)頁(yè) --> <swiper bindchange="bindchange" current="{{navState}}"> <block> <swiper-item> <view class="style-roll"> <text>左右可滑動(dòng)1</text> </view> </swiper-item> <swiper-item> <view class="style-roll"> <text>左右可滑動(dòng)2</text> </view> </swiper-item> <swiper-item> <view class="style-roll"> <text>左右可滑動(dòng)3</text> </view> </swiper-item> </block> </swiper>
js代碼:
Page({ data: { navState: 0,//導(dǎo)航狀態(tài) }, //監(jiān)聽(tīng)滑塊 bindchange(e) { // console.log(e.detail.current) let index = e.detail.current; this.setData({ navState:index }) }, //點(diǎn)擊導(dǎo)航 navSwitch: function(e) { // console.log(e.currentTarget.dataset.index) let index = e.currentTarget.dataset.index; this.setData({ navState:index }) }, /** * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載 */ onLoad: function(options) { }, })
wxss代碼:
.nav{ display: flex; justify-content: space-around; padding: 20rpx; background-color: rgb(129, 241, 55); font-size: 30rpx; } .nav-switch-style{ color: snow; } .style-default{ background-color: rgb(247, 229, 130); padding: 100rpx 0; text-align: center; } .style-roll{ background-color: rgb(130, 177, 247); padding: 100rpx 0; text-align: center; }
為大家推薦現(xiàn)在關(guān)注度比較高的微信小程序教程一篇:《微信小程序開(kāi)發(fā)教程》小編為大家精心整理的,希望喜歡。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 微信小程序點(diǎn)擊按鈕動(dòng)態(tài)切換input的disabled禁用/啟用狀態(tài)功能
- 微信小程序點(diǎn)擊頂部導(dǎo)航欄切換樣式代碼實(shí)例
- 微信小程序 點(diǎn)擊切換樣式scroll-view實(shí)現(xiàn)代碼實(shí)例
- 微信小程序開(kāi)發(fā)之實(shí)現(xiàn)選項(xiàng)卡(窗口頂部TabBar)頁(yè)面切換
- 微信小程序?qū)崿F(xiàn)tab左右切換效果
- 微信小程序 Tab頁(yè)切換更新數(shù)據(jù)
- 微信小程序 swiper制作tab切換實(shí)現(xiàn)附源碼
- 微信小程序開(kāi)發(fā)之選項(xiàng)卡(窗口底部TabBar)頁(yè)面切換
- 微信小程序?qū)崿F(xiàn)tab切換效果
- 微信小程序?qū)崿F(xiàn)tab點(diǎn)擊切換
相關(guān)文章
在layui中l(wèi)ayer彈出層點(diǎn)擊事件無(wú)效的解決方法
今天小編就為大家分享一篇在layui中l(wèi)ayer彈出層點(diǎn)擊事件無(wú)效的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09拆開(kāi)JavaScript迭代器模式內(nèi)部黑盒子
這篇文章主要為大家介紹了JavaScript迭代器模式內(nèi)部黑盒子解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12微信端調(diào)取相冊(cè)和攝像頭功能,實(shí)現(xiàn)圖片上傳,并上傳到服務(wù)器
這篇文章主要介紹了微信端調(diào)取相冊(cè)和攝像頭功能圖片上傳服務(wù)器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05JavaScript中內(nèi)置函數(shù)Map()的使用
Map()是JavaScript中內(nèi)置的一種數(shù)據(jù)結(jié)構(gòu),它允許您將鍵值對(duì)映射到任意類(lèi)型的值,主要介紹了JavaScript中內(nèi)置函數(shù)Map()的使用,感興趣的可以了解一下2023-05-05前端JavaScript處理小數(shù)精度問(wèn)題的最佳實(shí)踐教程
在JavaScript開(kāi)發(fā)過(guò)程中,小數(shù)精度問(wèn)題是一個(gè)常見(jiàn)的難題,本文介紹了兩種解決小數(shù)精度問(wèn)題的方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10jquery下onpropertychange事件的綁定方法
用了onchange事件,但是在輸入的時(shí)候,用Javascript計(jì)算出并填值的那一列并不會(huì)響應(yīng)onchange 事件。2010-08-08微信小程序分享海報(bào)生成的實(shí)現(xiàn)方法
為了吸引更多的用戶(hù),設(shè)計(jì)好一個(gè)分享海報(bào)還是很有必要的,這篇文章主要介紹了微信小程序分享海報(bào)生成的實(shí)現(xiàn)方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-12-12JavaScript實(shí)現(xiàn)猜數(shù)字游戲
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05