溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

小程序開發(fā)中如何實現(xiàn)一個點擊導(dǎo)航條跳轉(zhuǎn)頁面功能

發(fā)布時間:2020-11-19 14:33:31 來源:億速云 閱讀:460 作者:Leah 欄目:開發(fā)技術(shù)

小程序開發(fā)中如何實現(xiàn)一個點擊導(dǎo)航條跳轉(zhuǎn)頁面功能?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

具體內(nèi)容如下

黃色部分是不可以滑動的,藍色部分可以滑動。

小程序開發(fā)中如何實現(xiàn)一個點擊導(dǎo)航條跳轉(zhuǎn)頁面功能

代碼解說:

  • 首先我在js自定義了navState參數(shù)用于判斷導(dǎo)航的當前狀態(tài),
  • 定義了data-index用于js中動態(tài)修改導(dǎo)航的當前狀態(tài),
  • nav-switch-style為選擇導(dǎo)航條時的樣式,
  • 不可滑動視圖切換很簡單,用wx:if判斷狀態(tài)顯示相應(yīng)頁就好了,
  • 滑動頁視圖切換要用到swiper和 swiper-item,
  • 用bindchang方法監(jiān)聽滑塊,current 改變時會觸發(fā) change 事件(還有個bindanimationfinish方法監(jiān)聽也是可以用的,詳細請看官方文檔)
  • 動態(tài)的綁定了current滑塊的index,這樣就可以實現(xiàn)點擊導(dǎo)航條滑塊跟著滾動,
  • 相反的,當滑動滑塊時,就可以根據(jù)current的值來動態(tài)修改導(dǎo)航的狀態(tài)了。

wxml代碼:

<!-- 導(dǎo)航條 -->
<view class="nav">
 <view bindtap="navSwitch" data-index="0" class="{{navState==0 &#63; 'nav-switch-style':''}}">頁面一</view>
 <view bindtap="navSwitch" data-index="1" class="{{navState==1 &#63; 'nav-switch-style':''}}">頁面二</view>
 <view bindtap="navSwitch" data-index="2" class="{{navState==2 &#63; 'nav-switch-style':''}}">頁面三</view>
</view>
<!-- 不可滑動頁 -->
<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>
<!-- 滑動頁 -->
<swiper bindchange="bindchange" current="{{navState}}">
 <block>
 <swiper-item>
 <view class="style-roll">
 <text>左右可滑動1</text>
 </view>
 </swiper-item>
 <swiper-item>
 <view class="style-roll">
 <text>左右可滑動2</text>
 </view>
 </swiper-item>
 <swiper-item>
 <view class="style-roll">
 <text>左右可滑動3</text>
 </view>
 </swiper-item>
 </block>
</swiper>

js代碼:

Page({
 data: {
 navState: 0,//導(dǎo)航狀態(tài)
 },
 //監(jiān)聽滑塊
 bindchange(e) {
 // console.log(e.detail.current)
 let index = e.detail.current;
 this.setData({
 navState:index
 })
 },
 //點擊導(dǎo)航
 navSwitch: function(e) {
 // console.log(e.currentTarget.dataset.index)
 let index = e.currentTarget.dataset.index;
 this.setData({
 navState:index
 })
 },

 /**
 * 生命周期函數(shù)--監(jiān)聽頁面加載
 */
 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;
}

看完上述內(nèi)容,你們掌握小程序開發(fā)中如何實現(xiàn)一個點擊導(dǎo)航條跳轉(zhuǎn)頁面功能的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI