本篇文章给大家带来的内容是关于微信小程序实例:实现顶部tab切换以及滑动切换时导航栏会随着移动的效果(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
实现的效果:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
Page({
data: {
currentTab: 0,
},
swichNav: function (e) {
console.log(e);
var that = this ;
if ( this .data.currentTab === e.target.dataset.current) {
return false ;
} else {
that.setData({
currentTab: e.target.dataset.current,
})
}
},
swiperChange: function (e) {
console.log(e);
this .setData({
currentTab: e.detail.current,
})
},
onLoad: function (options) {
},
onReady: function () {
},
onShow: function () {
},
onHide: function () {
},
onUnload: function () {
},
onPullDownRefresh: function () {
},
onReachBottom: function () {
},
onShareAppMessage: function () {
return {
title: 'title' ,
desc: 'desc' ,
path: 'path'
}
}
})
|
wxml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
< view class = "page" >
< view class = "swiper-tab" >
< view class = "tab-item {{currentTab==0 ? 'on' : ''}}" data-current = "0" bindtap = "swichNav" >Tab1</ view >
< view class = "tab-item {{currentTab==1 ? 'on' : ''}}" data-current = "1" bindtap = "swichNav" >Tab2</ view >
< view class = "tab-item {{currentTab==2 ? 'on' : ''}}" data-current = "2" bindtap = "swichNav" >Tab3</ view >
</ view >
< swiper class = "swiper" current = "{{currentTab}}" duration = "200" bindchange = "swiperChange" >
< swiper-item >
< view >我是tab1</ view >
</ swiper-item >
< swiper-item >
< view >我是tab2</ view >
</ swiper-item >
< swiper-item >
< view >我是tab3</ view >
</ swiper-item >
</ swiper >
</ view >
|
wxss:
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
|
.page {
margin-left : 10 rpx;
margin-right : 10 rpx;
}
.swiper-tab {
display : flex;
flex- direction : row;
line-height : 80 rpx;
border-bottom : 2 rpx solid #777 ;
}
.tab-item {
width : 33.3% ;
text-align : center ;
font-size : 15px ;
color : #777 ;
}
.swiper {
height : 1100px ;
background : #dfdfdf ;
}
.on {
color : blue ;
border-bottom : 5 rpx solid blue ;
}
|