首页 > 编程 > HTML > 正文

html5触摸事件判断滑动方向的实现

2020-03-24 15:54:50
字体:
来源:转载
供稿:网友
这篇文章主要介绍了html5触摸事件判断滑动方向的实现的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。

为了给触摸界面提供有力支持, 触摸事件提供了响应用户对触摸屏或者触摸板上操作的能力.

接口

TouchEvent

TouchEvent 是一类描述手指在触摸平面(触摸屏、触摸板等)的状态变化的事件。这类事件用于描述一个或多个触点,使开发者可以检测触点的移动,触点的增加和减少,等等。每 个 Touch 对象代表一个触点; 每个触点都由其位置,大小,形状,压力大小,和目标 element 描述。 TouchList 对象代表多个触点的一个列表.

触摸事件的类型

为了区别触摸相关的状态改变,存在多种类型的触摸事件。可以通过检查触摸事件的 TouchEvent.type 属性来确定当前事件属于哪种类型

touchstart:当用户在触摸平面上放置了一个触点时触发。

touchend:当一个触点被用户从触摸平面上移除(当用户将一个手指离开触摸平面)时触发。

touchmove:当用户在触摸平面上移动触点时触发。

touchcancel:当触点由于某些原因被中断时触发。

判断滑动方向

基本原理就是记录开始滑动(touchStart)和结束滑动(touchEnd)的坐标位置,然后进行相对位置的计算。

touchStart:function(e){ startX = e.touches[0].pageX; startY = e.touches[0].pageY; e = e || window.event;touchEnd:function(e){ const that = this; endX = e.changedTouches[0].pageX; endY = e.changedTouches[0].pageY; that.upOrDown(startX,startY,endX,endY);upOrDown:function (startX, startY, endX, endY) { const that = this; let direction = that.GetSlideDirection(startX, startY, endX, endY); switch(direction) { case 0: console.log( 没滑动  break; case 1: console.log( 向上  break; case 2: console.log( 向下  break; case 3: console.log( 向左  break; case 4: console.log( 向右  break; default: break;//根据起点和终点返回方向 1:向上,2:向下,3:向左,4:向右,0:未滑动 GetSlideDirection:function (startX, startY, endX, endY) { const that = this; let dy = startY - endY; let dx = endX - startX; let result = 0; //如果滑动距离太短 if(Math.abs(dx) 2 Math.abs(dy) 2) { return result; let angle = that.GetSlideAngle(dx, dy); if(angle = -45 angle 45) { result = 4; }else if (angle = 45 angle 135) { result = 1; }else if (angle = -135 angle -45) { result = 2; else if ((angle = 135 angle = 180) || (angle = -180 angle -135)) { result = 3; return result; //返回角度 GetSlideAngle:function (dx, dy) { return Math.atan2(dy, dx) * 180 / Math.PI; }

原生JS方法

除了H5新增的方法外,还可以用原生JS判断view的滑动方向,代码如下(可直接运行):

要注意的是chrome对document.body.scrollTop一直是0,需要改成document.documentElement.scrollTop

 !DOCTYPE html  html  head  meta charset= utf-8  title 脚本之家(jb51.net) /title  style  border: 1px solid black; width: 200px; height: 100px; overflow: scroll; /style  /head  body >

相关推荐:

HTML5中的强制下载属性download使用

HTML5 Canvas实现文本对齐的方法总结


以上就是html5触摸事件判断滑动方向的实现的详细内容,其它编程语言

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表