本文实例为大家分享了小程序实现点击tab切换左右滑动的具体代码,供大家参考,具体内容如下
wxml
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
|
< scroll-view scroll-x = "true" class = "navbar-box" > < block wx:for = "{{recordMain}}" wx:for-index = "idx" wx:for-item = "navItem" wx:key = "idx" > < view class = "nav-item " data-current = "{{idx}}" bindtap = "switchNav" > < text class = "{{currentTab == idx ? 'active' : ''}}" >{{navItem.title}}</ text > </ view > </ block > </ scroll-view > < swiper style = "margin-top:80rpx;height:{{winHeight - 40}}px;" class = "tab-box" current = "{{currentTab}}" duration = "300" data-current = "{{idx}}" bindchange = "switchTab" > < swiper-item style = "height:100%;overflow-y:scroll" wx:for = "{{[0,1,2,3,4,5]}}" wx:for-item = "tabItem" wx:for-index = "idx" wx:key = "idx" class = "tab-cnetent" > < block wx:for = "{{tabContent}}" wx:key = " " bindtap = 'myOrderDetails' > <!-- 列表 --> < view class = 'listBox' > < view class = 'listTop' > < image src = '{{item.goodsImg}}' class = 'goodsImg' ></ image > < view class = 'infor' > < view class = '' > < text class = 'name' >{{item.name}}</ text > < text class = 'price' >¥{{item.price}}</ text > </ view > < view class = '' > < text class = 'choose' >{{item.choose}}</ text > < text class = 'number' >×{{item.number}}</ text > </ view > </ view > </ view > < view class = 'listBottom' > < view >共{{item.number}}件商品,合计:¥{{item.allPrice}}</ view > < view class = 'status' > < button >查看物流</ button > < button >确认收货</ button > </ view > </ view > </ view > </ block > </ swiper-item > </ swiper > |
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
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
::-webkit-scrollbar { width : 0 ; height : 0 ; color : transparent ; } .navbar-box { height : 70 rpx; line-height : 70 rpx; position : fixed ; top : 0 rpx; background : white } .nav-item { display : inline- block ; width : 16.6% ; text-align : center ; } .nav-item text { padding-bottom : 10 rpx; } page { background : #f2f2f2 ; font-size : 28 rpx; } .active { color : #a53533 ; border-bottom : 4 rpx solid #a53533 ; box-sizing: border-box; } .menu { font-size : 28 rpx; width : 100% ; /* overflow-x: scroll; */ border-bottom : 20 rpx solid #f2f2f2 ; padding : 30 rpx 30 rpx 0 rpx 30 rpx; box-sizing: border-box; display : flex; justify- content : space-between; position : fixed ; top : 0 rpx; z-index : 999 ; background : white ; } .chooseNav { padding-bottom : 10 rpx; } .listBox { padding : 30 rpx; width : calc( 100% - 60 rpx); margin-left : 30 rpx; margin-top : 30 rpx; background : white ; box-sizing: border-box; border-radius: 8 rpx; } .listTop { display : flex; justify- content : space-between; } .goodsImg { width : 200 rpx; height : 200 rpx; margin-right : 20 rpx; } .infor { flex: 1 ; margin-top : 80 rpx; font-size : 26 rpx; color : #666 ; } .infor view { width : 100% ; display : flex; justify- content : space-between; } .infor view:nth-of-type( 2 ) { font-size : 24 rpx; } .name, .choose { font-weight : 600 ; display : inline- block ; overflow : hidden ; text- overflow : ellipsis; white-space : nowrap ; width : 320 rpx; } .price, .number { padding : 5 rpx 10 rpx; box-sizing: border-box; } .listBottom { text-align : right ; } button::after { border : none ; } .status button { display : inline- block ; background : white ; border : 1px solid #dedede ; border-radius: 66 rpx; font-size : 24 rpx; margin-left : 20 rpx; color : #666 ; padding : 0 rpx 30 rpx; box-sizing: border-box; height : 50 rpx; line-height : 45 rpx; margin-top : 20 rpx; } |
wxjs
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
Page({ data: { recordMain: [ { title: "全部" }, { title: "待付款" }, { title: "待发货" }, { title: "待发货" }, { title: "已完成" }, { title: "已取消" }, ], tabContent: [ { goodsImg: '/img/goods.png' , name: '阿莎玛沙阿莎玛沙发阿莎玛沙发阿莎玛沙发阿莎玛沙莎玛沙发发' , price: "666" , choose: '已选:全新,16期' , number: '32' , allPrice: '888' }, ], currentTab: 0, navScrollLeft: 0, winWidth: 0, winHeight: 0, }, // 事件处理函数 onLoad: function () { var that = this ; /** 获取系统信息*/ wx.getSystemInfo({ success: function (res) { that.setData({ winWidth: res.windowWidth, winHeight: res.windowHeight, }); } }); }, // 滑动事件 // 点击标题切换当前页时改变样式 switchNav: function (e) { console.log(e.currentTarget.dataset.current) var that = this var cur = e.currentTarget.dataset.current; if (that.data.currentTab == cur) { return false ; } else { that.setData({ currentTab: cur }) } }, // 滚动切换标签样式 switchTab: function (e) { console.log(e) var that = this ; that.setData({ currentTab: e.detail.current }); if (e.detail.current == 0) { console.log(0) } else if (e.detail.current == 1) { console.log(11) } else if (e.detail.current == 2) { console.log(2222) } else if (e.detail.current == 3) { console.log(33333) } else if (e.detail.current == 4) { console.log(44444444) } else if (e.detail.current == 5) { console.log(55555) } } }) |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/xiaoxiao2017/p/10741631.html