「移动端」touch事件,touchEvent对象

时间:2021-08-25 12:38:56   收藏:0   阅读:37

随着智能手机普及,有越来越多的手机网页和网页版游戏,手机触摸、移动、旋转等等,多种操作。一般电脑的人机交互靠的是鼠标,而手机用的就是触摸。区别有:

一、touch事件类型

touch 事件与mouse事件区别:

1.1、事件绑定

使用语法:

element.addEventListener( ‘eventtype‘ , function(){} , useCapture )

eg:使用 touchstart 示例:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Document</title>
 <style>
  .box{
   width:200px;
   height:200px;
   border:solid 1px red;
  }
 </style>
</head>
<body>
 <div class="box"></div>
 <script>
  window.onload = function(){
   let oBox = document.getElementsByClassName(box)[0]
   oBox.addEventListener(touchstart,function(ev){
    console.log(ev)
   },false)    
  }
 </script>
</body>
</html>

 

每个touch事件的 event 对象,提供了手指触摸过程中的常见属性。打印函数返回的 event 对象,发现有很多参数,如图:

技术分享图片

 

1.2、touchEvent 对象属性

获取方法:

let oBox = document.getElementsByClassName(‘box‘)[0]
oBox.addEventListener(‘touchstart‘,function(ev){
 console.log(ev.touches)
 console.log(ev.targetTouches)
 console.log(ev.changedTouches)
 },false)

 

上一篇文章我们介绍过,手机如何访问电脑上本地网页,建议使用Browsersync,手机运行网页,手机触摸屏幕,在元素上触摸等观察上述三个属性打印情况。

我们发现它们都是一个数组,每个元素代表一个触摸点。每个触摸点对应的 都有一些重要的属性,分别为:

二、触摸分类

很多情况下触摸事件会分为两种,单点触发和多点触发。

单点触发,指的一个指头在屏幕触摸、滑动,主要应用在下拉刷新,手机端banner滑动切换等。

注意:如果是单点触摸,但是有多个手指同时触发,此时需要求三个点的平均值作为触摸点。

多点触发:多个手指同时触摸屏幕,进行旋转、缩放、放大、拖拽等操作。

技术分享图片

 

很多情况下,触摸事件跟鼠标事件会同时触发,目的是为了在pc端运行的时候,没有触摸设备可以使用鼠标代替。如果可以支持触摸事件,则把鼠标事件使用event.preventDefault()阻止事件发生,此时鼠标事件将失效。如果鼠标和触摸事件都支持时,还有添加多个触摸事件时,具体的执行顺序是怎么的?

触摸事件跟鼠标事件的触发先后顺序:

Touchstart > toucheend > mousemove > mousedown > mouseup > click

原文:https://www.cnblogs.com/web-learn/p/15184225.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!