本文实例为大家分享了微信小程序实现页面左右滑动的具体代码,供大家参考,具体内容如下
效果:
wxml文件
1
2
3
4
5
6
|
< view bindtouchmove = "tap_drag" bindtouchend = "tap_end" bindtouchstart = "tap_start" class = "page-top {{open ? ['c-state','cover'] : ''}} " > < view bindtap = "tap_ch" style = "{{open ? 'color: red;font-weight: bold;' : ''}}" >{{open ? '手指左滑' : '手指右滑'}}</ view > < view class = 'content' > < text >我是内容我是内容!</ text > </ view > </ view > |
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
54
55
56
57
58
|
data: { open: false , // mark 是指原点x轴坐标 mark: 0, // newmark 是指移动的最新点的x轴坐标 newmark: 0, istoright: true }, // 点击左上角小图标事件 tap_ch: function (e) { if ( this .data.open) { this .setData({ open: false }); } else { this .setData({ open: true }); } }, tap_start: function (e) { // touchstart事件 // 把手指触摸屏幕的那一个点的 x 轴坐标赋值给 mark 和 newmark this .data.mark = this .data.newmark = e.touches[0].pageX; }, tap_drag: function (e) { // touchmove事件 this .data.newmark = e.touches[0].pageX; // 手指从左向右移动 if ( this .data.mark < this .data.newmark) { this .istoright = true ; } // 手指从右向左移动 if ( this .data.mark > this .data.newmark) { this .istoright = false ; } this .data.mark = this .data.newmark; }, tap_end: function (e) { // touchend事件 this .data.mark = 0; this .data.newmark = 0; // 通过改变 opne 的值,让主页加上滑动的样式 if ( this .istoright) { this .setData({ open: true }); } else { this .setData({ open: false }); } }, |
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
|
/* 全局样式 */ page, .page { height : 100% ; font-family : 'PingFang SC' , 'Helvetica Neue' , Helvetica , 'Droid Sans Fallback' , 'Microsoft Yachei' , sans-serif ; } /* 侧边栏样式 */ .page-slidebar { height : 100% ; width : 750 rpx; position : fixed ; background-color : white ; z-index : 0 ; } /* 控制侧边栏的内容距离顶部的距离 */ .page-content { padding-top : 60 rpx; } /* 侧边栏内容的 css 样式 */ .wc { color : black ; padding : 30 rpx 0 30 rpx 150 rpx; border-bottom : 1px solid #eee ; } /* 当屏幕向左滑动,出现侧边栏的时候,主页的动画样式 */ /* scale:取值范围 0~1 ,表示屏幕大小是原来的百分之几,可以自己修改成 0.8 试下*/ /* translate(60%,0%) 表示向左滑动的时候,侧边栏占用平时的宽度为 60% */ /* translate(-60%,0%) 表示向右滑动的时候,侧边栏占用平时的宽度为 60% */ .c-state { transform: rotate( 0 deg) scale( 1 ) translate( 60% , 0% ); -webkit-transform: rotate( 0 deg) scale( 1 ) translate( 60% , 0% ); } /* 主页样式 */ .page- top { height : 100% ; position : fixed ; width : 750 rpx; background-color : white ; z-index : 0 ; transition: All 0.4 s ease; -webkit-transition: All 0.4 s ease; } /* 左上角图标的样式 */ .page- top image { position : absolute ; width : 68 rpx; height : 68 rpx; left : 20 rpx; top : 20 rpx; } /* 遮盖层样式 */ .cover{ width : 100% ; height : 100% ; background-color : gray ; opacity: 0.5 ; z-index : 9000 ; } .content{ margin-top : 100 rpx; } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_43201350/article/details/109613706