移动端事件基础总结

移动端事件总结

1. click

click事件在移动端使用是会有300ms左右的延迟,但是可以通过第三方的库进行解决 详情点击

2. touch事件模型

共四种:只在移动端触发

  1. touchstart:手指触摸到屏幕会触发
  2. touchmove:当手指在屏幕上移动时,会触发
  3. touchend:当手指离开屏幕时,会触发
  4. touchcancel:可由系统进行的触发,一些更高级别的事件发生时(如电话接入或者弹出信息)会取消当前的touch操作,即触发touchcancel。一般会在touchcancel时暂停游戏、存档等操作
box.ontouchstart = function(){
	//dosomethings...
}
//或者
box.addEventListener('touchstart',function(){
	//dosomethings...
})
//目前移动端只有这些事件,像zepto的tap事件,是对于他的封装

3. TouchEvent

  • 我们先打印一下event
box.addEventListener('touchstart',function(event){
	console.log(event)
})
  • 打印带出来是这个样子的

在这里插入图片描述

3.1 触摸相关属性

1 .touches

  • 当前屏幕上所有触摸点的列表
    • 当一个手指在触屏上时,event.touches.length=1
    • 当两个手指在触屏上时,event.touches.length=2,以此类推

2. changedTouches

  • 导致触摸事件被触发的触摸点数组

3. targetTouches

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

三者的区别

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

  2. 用第二个手指接触屏幕,此时,touches有两个元素,每个手指触摸点为一个值。

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

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

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

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

3.2 触摸事件坐标

  • 接着上面的例子,我们接着打开一项touches,其他三项也有相同的属性

在这里插入图片描述
我们发现了这么多属性

常用属性

  1. clientX 触摸目标在视口中的x坐标
  2. clientY 触摸目标在视口中的y坐标
  3. identifier 标识触摸的唯一ID
  4. pageX 触摸目标在页面中的x坐标
  5. pageY 触摸目标在页面中的y坐标
  6. screenX 触摸目标在屏幕中的x坐标
  7. screenY 触摸目标在屏幕中的y坐标
  8. target 触摸的DOM节点目标

文章参考

移动端事件总结
移动端事件
touch事件中的touches、targetTouches和changedTouches详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值