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

js移动端滑动事件

时间:2018-04-23 18:43:04      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:自定义   star   func   第一个   return   box   false   触摸位置   系统   

 1 <div id="box" style="width:100%;height:100%;border:1px solid red;"></div>
 2 
 3 <script>
 4     //定义变量,用于记录坐标和角度
 5     var startx,starty,movex,movey,endx,endy,nx,ny,angle;
 6     //开始触摸函数,event为触摸对象
 7     function touchs(event){
 8         event.preventDefault();//阻止浏览器默认滚动事件
 9         var box = document.getElementById(box);//获取DOM标签
10         if(event.type=="touchstart"){//通过if语句判断event.type执行了哪个触摸事件
11             console.log(开始);
12             var touch = event.touches[0];//获取开始的位置数组的第一个触摸位置
13             startx = Math.floor(touch.pageX);//获取第一个坐标的X轴
14             starty = Math.floor(touch.pageY);//获取第一个坐标的Y轴
15         }else if(event.type=="touchmove"){//触摸中的坐标获取
16             console.log(滑动中);
17             var touch = event.touches[0];
18             movex = Math.floor(touch.pageX);
19             movey = Math.floor(touch.pageY);
20         }else if(event.type == "touchend" || event.type == "touchcancel"){//当手指离开屏幕或系统取消触摸事件的时候
21             endx = Math.floor(event.changedTouches[0].pageX);//获取最后的坐标位置
22             endy = Math.floor(event.changedTouches[0].pageY);
23             console.log(结束);
24             nx = endx-startx;//获取开始位置和离开位置的距离
25             ny = endy-starty;
26             //通过坐标计算角度公式 Math.atan2(y,x)*180/Math.PI
27             angle = Math.atan2(ny, nx) * 180 / Math.PI;
28             if(Math.abs(nx)<=1 ||Math.abs(ny)<=1){
29                 return false;
30                 console.log(滑动距离太小);
31             }
32             //通过滑动的角度判断触摸的方向
33             if(angle<45 && angle>=-45){
34                 alert(右滑动);
35                 return false;
36             }else if(angle<135 && angle>=45){
37                 alert(下滑动);
38                 return false;
39             }else if((angle<=180 && angle>=135) || (angle>=-180 && angle<-135 )){
40                 alert(左滑动);
41                 return false;
42             }else if(angle<=-45 && angle >=-135){
43                 alert(上滑动);
44                 return false;
45             }
46         }
47     }
48     
49     //添加触摸事件的监听,并直行自定义触摸函数
50     box.addEventListener(touchstart,touchs,false);
51     box.addEventListener(touchmove,touchs,false);
52     box.addEventListener(touchend,touchs,false);
53     
54 </script>

 

js移动端滑动事件

标签:自定义   star   func   第一个   return   box   false   触摸位置   系统   

原文地址:https://www.cnblogs.com/webwrangler/p/8920397.html

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