微信小程序里没有自带选项卡组件,但是却带有swiper组件,所以,我们便利用swiper来实现选项卡的功能。
先看效果图:
实现代码:
页面代码:
1
2
3
4
5
6
7
8
9
10
11
|
<view class= "swiper-tab" >
<view class= "swiper-tab-item {{currentTab==0?‘active‘:‘‘}}" data-current= "0" bindtap= "clickTab" >一</view>
<view class= "swiper-tab-item {{currentTab==1?‘active‘:‘‘}}" data-current= "1" bindtap= "clickTab" >二</view>
<view class= "swiper-tab-item {{currentTab==2?‘active‘:‘‘}}" data-current= "2" bindtap= "clickTab" >三</view>
</view> <swiper current= "{{currentTab}}" duration= "300" bindchange= "swiperTab" >
<swiper-item><view>第一屏</view></swiper-item>
<swiper-item><view>第二屏</view></swiper-item>
<swiper-item><view>第三屏</view></swiper-item>
</swiper> |
js代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
var app=getApp()
Page({ data:{
currentTab:0
},
onLoad: function (options){
// 页面初始化 options为页面跳转所带来的参数
},
//滑动切换
swiperTab: function ( e ){
var that= this ;
that.setData({
currentTba:e.detail.current
});
},
//点击切换
clickTab: function ( e ) {
var that = this ;
if ( this .data.currentTab === e.target.dataset.current ) {
return false ;
} else {
that.setData( {
currentTab: e.target.dataset.current
})
}
}
}) |
css代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
.swiper-tab{ width: 100%;
border-bottom: 2rpx solid #ccc;
text-align: center;
height: 88rpx;
line-height: 88rpx;
font-weight: bold;
} .swiper-tab-item{ display: inline-block;
width: 33.33%;
color:red;
} .active{ color:aqua;
border-bottom: 4rpx solid red;
} |