码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2017-05-15 18:24:12      阅读:1813      评论:0      收藏:0      [点我收藏+]

标签:函数   手机   加载   通过   屏幕   注意   func   div   绑定元素   

滑动屏幕    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;
  

var distanceX = moveEndX - startX;
var distanceY = moveEndY - startY;
if (Math.abs(distanceX) > Math.abs(distanceY) && distanceX > 0) {
alert("您向 右 滑动!");
}
else if (Math.abs(distanceX) > Math.abs(distanceY) && distanceX < 0) {
alert("您向 左 滑动!");
}
else if (Math.abs(distanceX) < Math.abs(distanceY) && distanceY > 0) {
alert("您向 下 滑动!");
}
else if (Math.abs(distanceX) < Math.abs(distanceY) && distanceY < 0) {
alert("您向 上 滑动!");
}
else { alert("您转了好多圈,回到了原点!!"); }

 

});

  顺便提下:

1、Math.abs();函数是用来获取取得正数和负数的绝对值;
2、绑定元素的事件是需要写在当页面加载完成后的事件当中,或者是封装成函数,在页面加载后进行调用;
3、e.originalEvent.changedTouches[0].pageY/X,本人在编写时changedTouches时是没有智能提示的,需要小心和注意下;


希望对各位同仁有所帮助,好好学习,天天向上!!

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

标签:函数   手机   加载   通过   屏幕   注意   func   div   绑定元素   

原文地址:http://www.cnblogs.com/Hank562628872/p/6857407.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!