18.首頁(yè)導(dǎo)航模塊

  • 下載一個(gè)postman工具安裝,然后將公共路徑復(fù)制進(jìn)去


    image.png
image.png
image.png
  • 現(xiàn)在我想先發(fā)請(qǐng)求來(lái)拿一下這個(gè)數(shù)據(jù),然后再考慮做一個(gè)循環(huán)顯示的問(wèn)題,找到我們的index/index.json文件,在data里面先聲明一個(gè)變量
image.png
image.png
image.png
  • 在微信小程序內(nèi)部里面,你在發(fā)一些外鏈請(qǐng)求時(shí)候,必須要在小程序官網(wǎng)后臺(tái)配置


    image.png

    image.png
image.png
image.png
image.png
image.png
  • 需要讓他們?cè)谝恍猩巷@示,并且讓他們有一個(gè)橫向滾動(dòng)條顯示的效果
image.png
image.png
image.png
  • 然后給樣式,


    image.png
  • 你會(huì)發(fā)現(xiàn)左右拖動(dòng)不了


    image.png
  • 這樣就可以拖動(dòng)了


    image.png
  • 再優(yōu)化一下字體的顏色(灰色),下邊框有一個(gè)激活選中的紅色的線

  • 需要聲明一下下劃線是紅色的,這么一個(gè)類(lèi)
image.png

image.png
image.png
  • 下面做一個(gè)激活選中效果
  • 先如下圖


    image.png
  • 到j(luò)s文件中聲明一個(gè)變量


    image.png
image.png
image.png
image.png
image.png
  • index.js
Page({

  /**
   * 頁(yè)面的初始數(shù)據(jù)
   */
  data: {
    // (被點(diǎn)擊的首頁(yè)導(dǎo)航的菜單的索引)當(dāng)前點(diǎn)擊的時(shí)候選中的菜單欄是第幾個(gè)索引的意思,開(kāi)始等于一個(gè)0
    currentIndexNav:0,
    //首頁(yè)導(dǎo)航數(shù)據(jù)
    navList:[]
  },

  //點(diǎn)擊首頁(yè)導(dǎo)航按鈕
  activeNav(e){
    // console.log(123);
    //傳遞參數(shù)邏輯
    this.setData({
      currentIndexNav:e.target.dataset.index
    })
  },

  /**
   * 獲取首頁(yè)導(dǎo)航數(shù)據(jù)
   */
  getNavList(){
    let that=this;
    //利用小程序內(nèi)置發(fā)送請(qǐng)求的方法
    wx.request({
      url:"https://easy-mock.com/mock/5c1dfd98e8bfa547414a5278/bili/navList",
      //請(qǐng)求成功之后,會(huì)幫你觸發(fā)一個(gè)回調(diào)函數(shù)
      success(res){
        // console.log(res);
        if(res.data.code===0){
          that.setData({
            navList:res.data.data.navList
          })
        }
      }
    })
  },

  /**
   * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載
   */
  onLoad: function (options) {
    // 1.獲取首頁(yè)導(dǎo)航數(shù)據(jù)
    this.getNavList();
  },

  /**
   * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面初次渲染完成
   */
  onReady: function () {
    
  },

  /**
   * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面顯示
   */
  onShow: function () {
    
  },

  /**
   * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面隱藏
   */
  onHide: function () {
    
  },

  /**
   * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面卸載
   */
  onUnload: function () {
    
  },

  /**
   * 頁(yè)面相關(guān)事件處理函數(shù)--監(jiān)聽(tīng)用戶下拉動(dòng)作
   */
  onPullDownRefresh: function () {
    
  },

  /**
   * 頁(yè)面上拉觸底事件的處理函數(shù)
   */
  onReachBottom: function () {
    
  },

  /**
   * 用戶點(diǎn)擊右上角分享
   */
  onShareAppMessage: function () {
    
  }
})
  • index.wxml
<view class="main">
    <!-- 公共頭部 -->
    <MyTitle></MyTitle> 
    <!-- 首頁(yè)導(dǎo)航 -->
    <view class="nav_wrap">
        <!-- 自己滾動(dòng)區(qū)域的組件(小程序自帶的) -->    
        <scroll-view class="nav" scroll-x="{{true}}">
            <!-- 因?yàn)檫@個(gè)標(biāo)簽是做一個(gè)循環(huán)生成的,所以做一個(gè)循環(huán) -->
            <view bindtap="activeNav" data-index="{{index}}"
             class="nav_item {{index===currentIndexNav?'active':''}}" 
             wx:for="{{navList}}" wx:key="{{index}}">
                {{item.text}}
            </view>
        </scroll-view>
    </view>
</view>
  • index.wxss
page{
    color: #666;
}

/* 首頁(yè)導(dǎo)航 */
.nav_wrap{

}
.nav{
    /* 第一件事,不要因?yàn)橐粋€(gè)空格而換行 */
    white-space: nowrap;
    /* 加一個(gè)padding值 上下5,左右0 */
    padding: 5rpx 0;
}
.nav_item{
    padding: 20rpx 45rpx;
    /* 字體大小 */
    font-size: 30rpx;
    /* 在一行上顯示 */
    display: inline-block;
}
.nav_item.active{
    border-bottom: 5px solid #de688b ;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容