前言:在小程序中实现选项卡的功能。 GitHub:https://github.com/Ewall1106/miniProgramDemo 先看一下最终的实现效果:
小程序实现选项卡功能
wx:for
对list数组
进行循环遍历,得出选项栏的头部文字;tabClick
的tap
事件并把索引index
作为参数传递过去;index
进行判断后显示所对应的内容;<view class="container">
<!-- 选项栏 -->
<view class="title">
<view wx:for="{{list}}" wx:key="index" class="list_item {{activeIndex == index ? 'on' : ''}}" @tap="tabClick({{index}})">{{item}}</view>
</view>
<!-- 内容 -->
<view class="content">
<view style="display:{{activeIndex !== 0 ? 'none' : 'block'}}">0</view>
<view style="display:{{activeIndex !== 1 ? 'none' : 'block'}}">1</view>
<view style="display:{{activeIndex !== 2 ? 'none' : 'block'}}">3</view>
<view style="display:{{activeIndex !== 3 ? 'none' : 'block'}}">4</view>
</view>
</view>
<style lang="less" scoped>
.container {
.title {
display: flex;
flex-direction: row;
.list_item {
flex-grow: 1;
box-sizing: border-box;
height: 85rpx;
font-size: 32rpx;
text-align: center;
line-height: 85rpx;
border-bottom: 4rpx solid #eee;
}
.on {
border-bottom: 4rpx solid #fe2a7e;
color: #fe2a7e;
}
}
}
</style>
(1)页面所需要的data基本数据:
list
是选项栏循环的文字项;activeIndex
是用户当前点击的索引;data = {
list: ['全款', '待收货', '待发货', '已收货'],
activeIndex: 0
};
(2)将用户点击传过来的index
值赋给data中改变当前的索引值activeIndex
tabClick(val) {
this.activeIndex = val;
this.$apply();
}
这样我们就实现了一个简单选项卡的制作。