以前寫過一篇微信小程序使用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
動畫