首先给页面添加 touch 事件
<view class="text-area" @touchstart="start" @touchend="end"> </view>
然后定义一个合理区间进行判断,用户当前是上下滑动看书还是左右滑动变换章节.
start(e){ this.startData.clientX=e.changedTouches[0].clientX; this.startData.clientY=e.changedTouches[0].clientY; }, end(e){ // console.log(e) const subX=e.changedTouches[0].clientX-this.startData.clientX; const subY=e.changedTouches[0].clientY - this.startData.clientY; if(subY>50 || subY<-50){ console.log('上下滑') }else{ if(subX>100){ console.log('右滑') }else if(subX<-100){ console.log('左滑') }else{ console.log('无效') } } }
这里面根据用户如果上下滑动的幅度超过 50 即认定为用户当前行为是上下翻看内容,否则就根据用户左右滑动的幅度进行判断,取值左右 100 为有效区间,小于则认定为无效操作!