JS移动端touch事件

touch事件

  • touchstart:手指触摸屏幕时触发
  • touchend:手指离开屏幕时触发
  • touchmove:手指在屏幕中拖动目标元素时触发
            let box = document.querySelector('.test');
            box.addEventListener("touchstart",(e)=>{
                console.log('touchstart:手指按下时触发',e);
            })

            box.addEventListener("touchend",(e)=>{
                console.log('touchend:手指离开时触发');
            })

            box.addEventListener("touchmove",(e)=>{
                console.log('touchmove:手指拖动时触发')
            })

还有一个touchcancel事件:据说触发该事件场景是在游戏过程中来电提醒触发

touch事件相关属性
  • touches: 当前屏幕上所有触摸点的列表;

  • targetTouches: 当前对象上所有触摸点的列表;

  • changedTouches: 涉及当前(引发)事件的触摸点的列表

通过一个例子来区分一下触摸事件中的这三个属性:

  1. 用一个手指接触屏幕,触发事件,此时这三个属性有相同的值。

  2. 用第二个手指接触屏幕,此时,touches有两个元素,每个手指触摸点为一个值。当两个手指触摸相同元素时,
    targetTouches和touches的值相同,否则targetTouches 只有一个值。changedTouches此时只有一个值,
    为第二个手指的触摸点,因为第二个手指是引发事件的原因

  3. 用两个手指同时接触屏幕,此时changedTouches有两个值,每一个手指的触摸点都有一个值

  4. 手指滑动时,三个值都会发生变化

  5. 一个手指离开屏幕,touches和targetTouches中对应的元素会同时移除,而changedTouches仍然会存在元素。

  6. 手指都离开屏幕之后,touches和targetTouches中将不会再有值,changedTouches还会有一个值,
    此值为最后一个离开屏幕的手指的接触点。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 8,873评论 1 11
  • 在前端的移动Web开发中,有一部分事件只在移动端产生,如触摸相关的事件。接下来给大家简单总结一下移动端的事件。 1...
    IT老马阅读 10,498评论 1 20
  • 本节介绍各种常见的浏览器事件。 鼠标事件 鼠标事件指与鼠标相关的事件,主要有以下一些。 click 事件,dblc...
    许先生__阅读 7,457评论 0 4
  • 一、click 和 tap 比较 两者都会在点击时触发,但是在手机WEB端,click会有 200~300 ms,...
    Cinderella歌儿阅读 13,563评论 0 7
  • 触摸事件: 三种在规范中列出并获得跨移动设备广泛实现的基本触摸事件: 1.touchstart:手指放在一个DOM...
    晨光2016阅读 24,308评论 0 13