• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 應(yīng)用軟件教程 > 詳細頁面

        微信小程序中選項卡的完成方法

        微信小程序中選項卡的完成方法

        更新時間:2025-09-20 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        導(dǎo)微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一...
        微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一項門檻非常高的創(chuàng)新,經(jīng)過將近兩年的發(fā)展,已經(jīng)構(gòu)造了新的小程序開發(fā)環(huán)境和開發(fā)者生態(tài)。
        微信小程序中選項卡的應(yīng)用隨處可見,本篇文章就來給大家介紹微信小程序中選項卡的實現(xiàn)。

        思路

        • 之前寫過基于swiper的選項卡,在小程序中有swiper組件,毫無疑問這里要用到swiper組件

        • 小程序中的swiper組件有個問題就是不能根據(jù)內(nèi)容自適應(yīng)高度,所以要通過wx.getSystemInfoSync獲取設(shè)備高度設(shè)置swiper高度

        • 小程序中的swiper組件中swiper-item內(nèi)容超出可視區(qū)后無法滾動顯示,所以這里要用到另一個組件scroll-view。

        小程序中的swiper組件功能還是比較有限的,有待優(yōu)化。

        方案

        1.首先在js中設(shè)置數(shù)據(jù)

         data: {
            tabs: ['菜單一', '菜單二'],// 導(dǎo)航菜單欄
            curIdx:0,// 當(dāng)前導(dǎo)航索引
            scrollHeight:0, //滾動高度 = 設(shè)備可視區(qū)高度 -  導(dǎo)航欄高度
            list:[],// 內(nèi)容區(qū)列表
          },

        在onLoad函數(shù)中填充數(shù)據(jù)

          /**
           * 生命周期函數(shù)--監(jiān)聽頁面加載
           */
          onLoad: function (options) {
            let list=[];
            for (let i=1;i<=30;i++){
              list.push(i)
            }
            this.setData({
              list: list
            });
          },

        2.在WXML中循環(huán)渲染出導(dǎo)航

        <!-- 導(dǎo)航欄開始 -->
        <view class="swiper-tab">
          <view wx:for="{{tabs}}" wx:key class="swiper-tab-item {{curIdx==index?'swiper-active':''}}" data-current="{{index}}" catchtap="clickTab">
            <text>{{item}}</text>
          </view>
        </view>

        3.設(shè)置當(dāng)前活動導(dǎo)航樣式

        /*初始化樣式*/
        view, text, picker, input, button, image{
          display: flex;
          box-sizing: border-box;
        }
        /* 導(dǎo)航樣式*/
        .swiper-tab {
          position: relative;
          width: 100%;
          height: 100rpx;
          justify-content: center;
          align-items: center;
        }
        
        .swiper-tab-item {
          background-color: #f3f3f3;
          width: 50%;
          height: 80rpx;
          justify-content: center;
          align-items: center;
        }
        .swiper-active{
          background-color: rgb(129, 190, 247);
          color: #fff;
        }

        4.內(nèi)容顯示區(qū)

        內(nèi)容顯示區(qū)使用swiper組件,swiper-item個數(shù)要與tabs數(shù)組長度 一致

        <!-- 內(nèi)容開始 -->
        <swiper class="swiper_content" current="{{curIdx}}"   bindchange="swiperTab" style='height:{{scrollHeight}}px'>
          <swiper-item>
            <scroll-view class="scroll-y" scroll-y style='height:{{scrollHeight}}px' bindscrolltolower="onReachBottom">
            <view wx:for="{{list}}" wx:key>
              <text> 內(nèi)容一{{item}}</text>
            </view>
                </scroll-view>
          </swiper-item>
          <swiper-item>
            內(nèi)容二
          </swiper-item>
        </swiper>

        小程序中的swiper組件有個問題就是不能根據(jù)內(nèi)容自適應(yīng)高度,所以要通過[wx.getSystemInfoSync][4]獲取設(shè)備高度設(shè)置swiper高度
        小程序中的swiper組件中swiper-item內(nèi)容超出可視區(qū)后無法滾動顯示,所以這里要用到另一個組件[scroll-view][5]。
        我們在onShow函數(shù)中通過getSystemInfoSync獲取設(shè)備的寬高來設(shè)置swiper組件高度以及scroll-view高度

          onShow: function () {
            // 100為導(dǎo)航欄swiper-tab 的高度
           this.setData({
             scrollHeight: wx.getSystemInfoSync().windowHeight - (wx.getSystemInfoSync().windowWidth / 750 * 100),
           })
          },

        5.點擊導(dǎo)航欄切換內(nèi)容

          //點擊切換
          clickTab: function (e) {
            this.setData({
              curIdx: e.currentTarget.dataset.current
            })
          },

        6.滑動內(nèi)容切換導(dǎo)航欄

          //滑動切換
          swiperTab: function (e) {
            this.setData({
              curIdx: e.detail.current
            });
          },

        7.可滾動區(qū)域滾動最底刷新數(shù)據(jù)

          /**
         * 頁面上拉觸底事件的處理函數(shù)
         */
          onReachBottom: function () {
            // 更新列表
            let list = this.data.list;
            console.log(list)
            let lens = list.length
            for (let i = lens; i < lens+30; i++) {
              list.push(i)
            }
            this.setData({
              list: list
            });
          
          },

        一個漂亮的選項卡就完成了。完整案例

        以上就是本篇文章的全部內(nèi)容了,更多精彩請關(guān)注php中文網(wǎng)。

        以上就是微信小程序中選項卡的實現(xiàn)方法的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


        小程序是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應(yīng)用。

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 亚洲免费视频播放| 一区二区免费国产在线观看| 亚洲六月丁香六月婷婷色伊人| 好猛好深好爽好硬免费视频| 成视频年人黄网站免费视频| 亚洲爽爽一区二区三区| 亚洲性猛交xx乱| 成人在线免费视频| 亚洲人成电影网站国产精品| 国产成人精品日本亚洲网址| 国产一级a毛一级a看免费视频| 成人看的午夜免费毛片| 亚洲精品V欧洲精品V日韩精品 | 亚洲人成网站色7799| 手机看片国产免费永久| 日本免费无遮挡吸乳视频电影| 亚洲精品高清国产一线久久| 成人黄网站片免费视频| 免费一级毛片女人图片| 国产亚洲sss在线播放| 免费人成视频在线| 亚洲精品456在线播放| 两性色午夜视频免费播放| 亚洲成色在线综合网站 | 亚洲福利中文字幕在线网址| 亚洲免费在线视频播放| 成人性生交视频免费观看| 无人视频免费观看免费视频| 精品免费国产一区二区| 亚洲成年人电影网站| 女人18毛片特级一级免费视频| 97亚洲熟妇自偷自拍另类图片| 亚洲a∨国产av综合av下载| 动漫黄网站免费永久在线观看| 亚洲人成网站在线在线观看| 91麻豆国产自产在线观看亚洲| 最好2018中文免费视频| 久久青草亚洲AV无码麻豆| 免费人成在线观看网站| 亚洲AV无码乱码国产麻豆| 成人A级毛片免费观看AV网站|