HTML5触摸事件(touchstart、touchmove和touchend)

HTML5触摸事件(touchstart、touchmove和touchend)HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享。今天为大家介绍的事件主要是触摸事件:touchstart、touchmove和touchend。  一开始触摸事件touchstart、touchmove和touchend是iOs版Safari浏览器为了向开发人员

大家好,又见面了,我是你们的朋友全栈君。

 HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享。今天为大家介绍的事件主要是触摸事件:touchstart、touchmove和touchend。

  一开始触摸事件touchstart、touchmove和touchend是iOs版Safari浏览器为了向开发人员传达一些信息新添加的事件。因为iOs设备既没有鼠标也没有键盘,所以在为移动Safari浏览器开发交互性网页的时候,PC端的鼠标和键盘事件是不够用的。

  在iPhone 3Gs发布的时候,其自带的移动Safari浏览器就提供了一些与触摸(touch)操作相关的新事件。随后,Android上的浏览器也实现了相同的事件。触摸事件(touch)会在用户手指放在屏幕上面的时候、在屏幕上滑动的时候或者是从屏幕上移开的时候出发。下面具体说明:

  touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发。

  touchmove事件:当手指在屏幕上滑动的时候连续地触发。在这个事件发生期间,调用preventDefault()事件可以阻止滚动。

  touchend事件:当手指从屏幕上离开的时候触发。

  touchcancel事件:当系统停止跟踪触摸的时候触发。关于这个事件的确切出发时间,文档中并没有具体说明,咱们只能去猜测了。

  上面的这些事件都会冒泡,也都可以取消。虽然这些触摸事件没有在DOM规范中定义,但是它们却是以兼容DOM的方式实现的。所以,每个触摸事件的event对象都提供了在鼠标实践中常见的属性:bubbles(起泡事件的类型)、cancelable(是否用 preventDefault() 方法可以取消与事件关联的默认动作)、clientX(返回当事件被触发时,鼠标指针的水平坐标)、clientY(返回当事件触发时,鼠标指针的垂直坐标)、screenX(当某个事件被触发时,鼠标指针的水平坐标)和screenY(返回当某个事件被触发时,鼠标指针的垂直坐标)。除了常见的DOM属性,触摸事件还包含下面三个用于跟踪触摸的属性。

  touches:表示当前跟踪的触摸操作的touch对象的数组。

  targetTouches:特定于事件目标的Touch对象的数组。

  changeTouches:表示自上次触摸以来发生了什么改变的Touch对象的数组。

  每个Touch对象包含的属性如下。

  clientX:触摸目标在视口中的x坐标。

  clientY:触摸目标在视口中的y坐标。

  identifier:标识触摸的唯一ID。

  pageX:触摸目标在页面中的x坐标。

  pageY:触摸目标在页面中的y坐标。

  screenX:触摸目标在屏幕中的x坐标。

  screenY:触摸目标在屏幕中的y坐标。

  target:触目的DOM节点目标。

  上面的属性光这么看,果然非常繁琐,每个属性说的都是那么的细致,只有真刀实枪的来点小例子才能更加明白其中的奥妙。所以小例子如下。

function load (){     document.addEventListener('touchstart',touch, false);    document.addEventListener('touchmove',touch, false);    document.addEventListener('touchend',touch, false);         function touch (event){        var event = event || window.event;                 var oInp = document.getElementById("inp");         switch(event.type){            case "touchstart":                oInp.innerHTML = "Touch started (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";                break;            case "touchend":                oInp.innerHTML = "<br>Touch end (" + event.changedTouches[0].clientX + "," + event.changedTouches[0].clientY + ")";                break;            case "touchmove":                event.preventDefault();                oInp.innerHTML = "<br>Touch moved (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";                break;        }             }}window.addEventListener('load',load, false);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150778.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月19日 下午3:46
下一篇 2022年6月19日 下午3:46


相关推荐

  • AI高门槛时代结束:阿里云JVSClaw让AI员工3分钟上岗

    AI高门槛时代结束:阿里云JVSClaw让AI员工3分钟上岗

    2026年3月14日
    2
  • Rocksdb Compaction源码详解(二):Compaction 完整实现过程 概览

    Rocksdb Compaction源码详解(二):Compaction 完整实现过程 概览Rocksdb 的 compaction 流程可以说是比较核心的流程了 它的存在除了保证不同 sst 文件之间的 key value 之间的有序性 数据的压缩存储 清理过时数据之外 还需要在存储细节上做一些优化来进一步提升 LSMtree 的读性能 Rangetombsto 的构造 提升了 deleteRange 区间的 key value 的判断效率 filterblock 的创建 提升判断一个 key 是否存在的概率 indexblock 的创建 支持二分查找和 hashmap 的查找 提升针对普通 key value 的查找性

    2026年3月18日
    3
  • 【详细】3分钟教会你使用USDT钱包「建议收藏」

    【详细】3分钟教会你使用USDT钱包「建议收藏」小编为您介绍一款安全系数非常高的USDT钱包,之所以安全系数非常高是因为去中心化模式,USDT钱包文件或私钥可以脱离网络储存,比如可以备份在手机里,硬盘里,U盘里,网盘里,甚至拿笔写在纸上。我们经常听说用户一般会把大部分数字资产存储到冷钱包,主要是为了安全的考虑,而把少量的数字资产存储在交易所热钱包,以方便交易,现在USDT钱包居多的是中心化钱包,用户的数字货币储存在交易所里,换句话说非常不安全,因为你不知道你的USDT钱包文件与私钥,交易所被黑客攻击或者自行关闭你是无能为力只能眼睁睁看这你的币子任由他

    2022年5月21日
    522
  • 别让你的敏感词过滤系统把正常的文字过滤了!

    别让你的敏感词过滤系统把正常的文字过滤了!昨天csdn上发了一段文字评论(绝对非常规矩的文字),结果提示有敏感词,然后直接把我的博客和谐掉了。访问博客时提示:我们不去探讨过滤所谓敏感词的必要性和意义。既然做了这个系统,就要保证过滤质量,该过滤的过滤,不该过滤的词汇就不要过滤。如下这段话,作者实在没看出那里有不和谐因素。请读者指教啊:PS:会不会因为发了这篇文章博客再次被关闭啊!补充:经

    2022年5月10日
    38
  • 二叉树以及常见面试题

    二叉树以及常见面试题

    2021年11月20日
    27
  • 黑马程序员教你如何写出优秀的前端工程师简历

    黑马程序员教你如何写出优秀的前端工程师简历对于一名想找工作的前端开发工程师而言 简历直接关系到面试概率甚至薪资水平 其重要性已不用多说 在 HR 快速筛选简历的情况下 你的简历要脱颖而出 就得在短时间内将自己的亮点展示给招聘方 具体怎么做 黑马程序员前端与移动开发学院的就业指导老师来教你 nbsp nbsp 第一步 知己知彼 百战不殆 nbsp nbsp nbsp 不看工作要求直接写简历是很危险的 前文提到 要在简历中突出自己的亮点 所谓的 亮点 就是对于招聘方来

    2026年3月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号