您现在的位置是:网站首页> 编程资料编程资料
html5触摸事件判断滑动方向的实现HTML5触摸事件实现移动端简易进度条的实现方法整理HTML5移动端开发的常用触摸事件HTML5触摸事件演化tap事件介绍HTML5触摸事件(touchstart、touchmove和touchend)的实现
2023-10-16
265人已围观
简介 这篇文章主要介绍了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
(jb51.net) HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
HEllo word
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- 基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码基于 HTML5 WebGL 实现的垃圾分类系统HTML5 WebGL 实现民航客机飞行监控系统基于 HTML5 WebGL 实现的医疗物流系统
- html5-canvas中使用clip抠出一个区域的示例代码使用HTML5 Canvas API中的clip()方法裁剪区域图像
- HTML5 device access 设备访问详解html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- 详解canvas在圆弧周围绘制文本的两种写法HTML5 Canvas中使用用路径描画圆弧
- 全民飞机大战第一关通关攻略心得_全民飞机大战通关教程_手机游戏_游戏攻略_
- 全民飞机大战宠物资料介绍_全民飞机大战宠物有哪些_手机游戏_游戏攻略_
- 全民飞机大战天神祝福道具全面解析_全民飞机大战道具说明_手机游戏_游戏攻略_
- 全民飞机大战刷金币教程攻略_全民飞机大战刷金币心得_手机游戏_游戏攻略_
- 全民飞机大战刷分图文攻略_全民飞机大战刷分心得_手机游戏_游戏攻略_
- 全民英雄撼地小牛技能加点攻略详解_手机游戏_游戏攻略_
