移动端的常用触摸事件 ontouchstart、ontouchmove、ontouchend、ontouchcancel

1、Touch事件简介

pc上的web页面鼠 标会产生onmousedown、onmouseup、onmouseout、onmouseover、onmousemove的事件,
但是在移动终端如 iphone、ipod Touch、ipad上的web页面触屏时会产生ontouchstartontouchmoveontouchendontouchcancel 事件,分别对应了触屏开始、拖拽及完成触屏事件和取消
当按下手指时,触发ontouchstart
当移动手指时,触发ontouchmove
当移走手指时,触发ontouchend
当一些更高级别的事件发生的时候(如电话接入或者弹出信息)会取消当前的touch操作,即触发ontouchcancel。一般会在ontouchcancel时暂停游戏、存档等操作。

2、Touch事件详细参数

1、touches:表示当前跟踪的触摸操作的 touch 对象的数组。
2、 targetTouches:特定于事件目标的 Touch 对象的数组。
3、changeTouches:表示自上次触摸以来发生了什么改变的 Touch 对象的数组。 每个 touch 对象包含的属性
4、clientX:触摸目标在视口中的 x 坐标。
5、clientY:触摸目标在视口中的 y 坐标。
6、identifier:标识触摸的唯一 ID。
7、pageX:触摸目标在页面中的 x 坐标。
8、pageY:触摸目标在页面中的 y 坐标。
9、screenX:触摸目标在屏幕中的 x 坐标。
10、screenY:触摸目标在屏幕中的 y 坐标。
11、target:触目的 DOM 节点目标。

3、Touch事件与Mouse事件的出发关系

在触屏操作后,手指提起的一刹那(即发生ontouchend后),系统会判断接收到事件的element的内容是否被改变。
如果内容被改变,接下来的事 件都不会触发,如果没有改变,会按照mousedown,mouseup,click的顺序触发事件。
特别需要提到的是,只有再触发一个触屏事件时,才会 触发上一个事件的mouseout事件。

4、gesture事件

Gesture事件,包括手指点击(click),轻拂 (flick),双击(double-click),手指的分开、闭合(scale)、转动(rotate)等一切手指能在屏幕上做的事情。
它只在有两根 或多根手指放在屏幕上的时候触发,事件处理函数中会得到一个GestureEvent类型的参数。
它包含了手指的scale(两根移动过程中分开的比例) 信息和rotation(两根手指间连线转动的角度)信息。
这个事件是对touch事件的更高层的封装,和touch一样,它同样包括 gesturestart,gesturechange,gestureend。

gesture事件触发过程:
Step 1、第一根手指放下,触发touchstart
Step 2、第二根手指放下,触发gesturestart
Step 3、触发第二根手指的touchstart
Step 4、立即触发gesturechange
Step 5、手指移动,持续触发gesturechange,就像鼠标在屏幕上移动的时候不停触发mousemove一样
Step 6、第二根手指提起,触发gestureend,以后将不会再触发gesturechange
Step 7、触发第二根手指的touchend
Step 8、触发touchstart!注意,多根手指在屏幕上,提起一根,会刷新一次全局touch!重新触发第一根手指的touchstart
Step 9、提起第一根手指,触发touchend

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值