touchstart,touchmove判断手机中滑屏方向

Posted 雪松

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了touchstart,touchmove判断手机中滑屏方向相关的知识,希望对你有一定的参考价值。

滑动屏幕    touchstart:接触屏幕时触发,touchmove:活动过程触发,touchend:离开屏幕时触发

首先获取手接触屏幕时的坐标X,Y

//获取接触屏幕时的X和Y
$(\'body\').bind(\'touchstart\',function(e){ startX = e.originalEvent.changedTouches[0].pageX, startY = e.originalEvent.changedTouches[0].pageY; });

然后获取滑动的坐标,并使用后面的坐标减去前面的坐标,通过获取的值判断其滑动方向。因为手滑动方向一般不是水平或者垂直的,所以可使用Math.abs()进行比较,比如:像右上角滑动,当往上滑动的距离大于往右的距离时,取其往上滑动的距离,即往上滑动。

复制代码
$(\'body\').bind(\'touchmove\',function(e){
    //获取滑动屏幕时的X,Y
    endX = e.originalEvent.changedTouches[0].pageX,
    endY = e.originalEvent.changedTouches[0].pageY;
    //获取滑动距离
    distanceX = endX-startX;
    distanceY = endY-startY;
    //判断滑动方向
    if(Math.abs(distanceX)>Math.abs(distanceY) && distanceX>0){
        console.log(\'往右滑动\');
    }else if(Math.abs(distanceX)>Math.abs(distanceY) && distanceX<0){
        console.log(\'往左滑动\');
    }else if(Math.abs(distanceX)<Math.abs(distanceY) && distanceY<0){
        console.log(\'往上滑动\');
    }else if(Math.abs(distanceX)<Math.abs(distanceY) && distanceY>0){
        console.log(\'往下滑动\');
    }else{
        console.log(\'点击未滑动\');
    }

});
复制代码

 

以上是关于touchstart,touchmove判断手机中滑屏方向的主要内容,如果未能解决你的问题,请参考以下文章

手机端touchstart,touchmove,touchend事件,优化用户划入某个可以点击LI的效果

关于手机端 手势滑动的方向的判断(方式一)

手机端触摸的方向判断

H5案例分享:移动端touch事件判断滑屏手势的方向

touchstart和touchmove之间的iOS延迟?

获取touchstart,touchmove,touchend 坐标