以前写过一篇微信小程序使用movable-view实现左滑删除功能,有同窗使用了这种方案并提出我以前没有发现的bug(如今bug已进行了修复),感谢。git
有同窗问了若是不使用movable-view
的话如何来实现左滑删除?那此次就写一下如何只使用touch
事件来实现左滑删除。github
Talk is cheap. Show me the code.小程序
touchstart
、touchmove
和touchend
三个touch
事件touchstart
事件时须要先禁用掉transition
动画,同时记录下触摸点的pageX
和pageY
的值,以及此时滑动的起始点,即删除按钮的状态,隐藏仍是显示。touchmove
事件处理手指的滑动,此时须要进行如下不一样状况的判断:segmentfault
判断若是是如下两种状况时不进行组件的移动:微信小程序
- 在最右边时向右滑动;
- 在最左边时向左滑动
touchend
事件则是处理手指离开屏幕以后组件的一些后续动做:微信
touchmove
中记录的手指位移方向进行判断,非左右滑动时则对组件不进行移动负的删除按钮宽度
如下两种状况组件都滑动到右边起点(即删除按钮隐藏的状态):app
- 从右边起点左滑但未超过最大位移的一半,回退到右边起点
- 从左边起点右滑且超过最大位移的一半,继续滑到到右边起点
transition
动画