ホームページ >WeChat アプレット >ミニプログラム開発 >WeChat ミニ プログラムにタブを実装する方法
WeChat ミニ プログラムでのタブの適用はいたるところで見られます。この記事では、WeChat ミニ プログラムでのタブの実装について紹介します。
私は以前にスワイパーに基づいてタブを書いたことがありますが、ここでスワイパーコンポーネントが使用されているのは間違いありません
スワイパーに問題があります。コンテンツは高さに適応するため、wx.getSystemInfoSync を通じてデバイスの高さを取得し、スワイパーの高さを設定する必要があります。アプレットのスワイパー コンポーネントでは、スワイパー項目のコンテンツは使用できません。表示領域を超えた後にスクロールする必要があるため、ここでは別のコンポーネントのスクロールが使用されます。
解決策1.まずjsにデータを設定します
data: { tabs: ['菜单一', '菜单二'],// 导航菜单栏 curIdx:0,// 当前导航索引 scrollHeight:0, //滚动高度 = 设备可视区高度 - 导航栏高度 list:[],// 内容区列表 },
/** * 生命周期函数--监听页面加载 */ onLoad: function (options) { let list=[]; for (let i=1;i<=30;i++){ list.push(i) } this.setData({ list: list }); },
<!-- 导航栏开始 --> <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. 現在アクティブなナビゲーションスタイルを設定します
/*初始化样式*/ view, text, picker, input, button, image{ display: flex; box-sizing: border-box; } /* 导航样式*/ .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; }
<!-- 内容开始 --> <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> 内容一{{item}}</text> </view> </scroll-view> </swiper-item> <swiper-item> 内容二 </swiper-item> </swiper>
アプレット内のスワイパー コンポーネントには、コンテンツに応じて高さを調整できないため、[wx.getSystemInfoSync][4] を渡す必要があります。デバイスの高さを取得し、スワイパーの高さを設定します。
アプレットは視覚領域を超えるとスクロールできないため、ここでは別のコンポーネントが使用されます[scroll-view][5]。
onShow 関数の getSystemInfoSync を通じてデバイスの幅と高さを取得し、スワイパー コンポーネントの高さとスクロール ビューの高さを設定します
onShow: function () { // 100为导航栏swiper-tab 的高度 this.setData({ scrollHeight: wx.getSystemInfoSync().windowHeight - (wx.getSystemInfoSync().windowWidth / 750 * 100), }) },
5. ナビゲーション バーをクリックしてコンテンツを切り替えます小程序中的swiper组件有个问题就是不能根据内容自适应高度,所以要通过[wx.getSystemInfoSync][4]获取设备高度设置swiper高度
小程序中的swiper组件中swiper-item内容超出可视区后无法滚动显示,所以这里要用到另一个组件[scroll-view][5]。
//点击切换 clickTab: function (e) { this.setData({ curIdx: e.currentTarget.dataset.current }) },
//滑动切换 swiperTab: function (e) { this.setData({ curIdx: e.detail.current }); },
/** * 页面上拉触底事件的处理函数 */ 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 }); },
上記はこの記事の全内容です。さらに興味深い情報については、php 中国語の Web サイトに注目してください。
以上がWeChat ミニ プログラムにタブを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。