TouchEvent
TouchEvent 接口表示一个 UIEvent,当触摸敏感表面的接触状态发生变化时发送。此表面可以是触摸屏或触控板,例如。该事件可以描述屏幕上一个或多个接触点,并支持检测接触点的移动、添加和移除等。
触摸点由 Touch 对象表示;每个触摸点都由位置、大小和形状、压力以及目标元素描述。触摸点列表由 TouchList 对象表示。
构造函数
TouchEvent()-
创建一个
TouchEvent对象。
实例属性
此接口继承自其父接口 UIEvent 和 Event 的属性。
TouchEvent.altKey只读-
一个布尔值,指示触发触摸事件时 alt 键是否被按下。
TouchEvent.changedTouches只读-
一个
TouchList,其中包含所有Touch对象,这些对象代表了在之前的触摸事件和当前事件之间状态发生变化的个人接触点。 TouchEvent.ctrlKey只读-
一个布尔值,指示触发触摸事件时 control 键是否被按下。
TouchEvent.metaKey只读-
一个布尔值,指示触发触摸事件时 meta 键是否被按下。
TouchEvent.shiftKey只读-
一个布尔值,指示触发触摸事件时 shift 键是否被按下。
TouchEvent.targetTouches只读-
一个
TouchList,包含所有当前与触摸表面接触的Touch对象,并且这些对象也是在与事件目标相同的元素上开始触摸的。 TouchEvent.touches只读TouchEvent.rotation非标准 只读-
自事件开始以来的旋转变化(以度为单位)。正值表示顺时针旋转;负值表示逆时针旋转。初始值:
0.0。 TouchEvent.scale非标准 只读-
自事件开始以来两个手指之间的距离。表示为初始手指距离的浮点数倍。小于 1.0 的值表示向内捏合(缩小)。大于 1.0 的值表示向外张开(放大)。初始值:
1.0。
触摸事件类型
有几种类型的事件可以触发,以指示发生了与触摸相关的更改。您可以通过查看事件的 TouchEvent.type 属性来确定发生了哪种事件。
touchstart-
当用户将触摸点放在触摸表面上时发送。事件的目标将是发生触摸的
element。 touchend-
当用户将触摸点从表面移开时发送;也就是说,当他们抬起手指或触控笔离开表面时。如果触摸点移出表面的边缘,也会发送此事件;例如,如果用户的手指滑出了屏幕边缘。
事件的目标是与触摸点相对应的
touchstart事件所接收的同一个element,即使触摸点已移出该元素之外。可以从
changedTouches属性指定的TouchList中找到从表面移除了的一个或多个触摸点。 touchmove-
当用户沿表面移动触摸点时发送。事件的目标是与触摸点相对应的
touchstart事件所接收的同一个element,即使触摸点已移出该元素之外。如果触摸点的 radius、rotation angle 或 force 属性的值发生变化,也会发送此事件。
注意:
touchmove事件的发送速率是浏览器特定的,并且可能因用户硬件的功能而异。您不应依赖于这些事件的特定粒度。 touchcancel-
当触摸点因某种原因被中断时发送。可能发生这种情况的原因有多种(确切原因因设备和浏览器而异)。
与 addEventListener() 和 preventDefault() 一起使用
值得注意的是,在许多情况下,触摸事件和鼠标事件都会被发送(以允许非触摸特定的代码仍能与用户进行交互)。如果您使用触摸事件,则应调用 preventDefault() 以防止鼠标事件也被发送。
例外情况是 Chrome,从 56 版本开始(桌面版、Chrome for Android 和 Android webview),touchstart 和 touchmove 的 passive 选项的默认值为 true,调用 preventDefault() 将不起作用。要覆盖此行为,您需要将 passive 选项设置为 false,之后调用 preventDefault() 将按预期工作。将侦听器默认视为 passive 的更改可防止侦听器在用户滚动时阻止页面渲染。Chrome 开发者网站上提供了演示:Chrome Developer。
示例
请参阅 主触摸事件文章中的示例。
规范
| 规范 |
|---|
| 触摸事件 # touchevent-interface |
浏览器兼容性
加载中…