TouchEvent
interface represents an
UIEvent
which is sent when the state of contacts with a touch-sensitive surface changes. This surface can be a touch screen or trackpad, for example. The event can describe one or more points of contact with the screen and includes support for detecting movement, addition and removal of contact points, and so forth.
Touches are represented by the
触摸
object; each touch is described by a position, size and shape, amount of pressure, and target element. Lists of touches are represented by
TouchList
对象。
<div id="interfaceDiagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveAspectRatio="xMinYMin meet"><a xlink:href="../API/Event" target="_top"><rect x="1" y="1" width="75" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="38.5" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">Event</text></a><polyline points="76,25 86,20 86,30 76,25" stroke="#D4DDE4" fill="none"/><line x1="86" y1="25" x2="116" y2="25" stroke="#D4DDE4"/><a xlink:href="../API/UIEvent" target="_top"><rect x="116" y="1" width="75" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="153.5" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">UIEvent</text></a><polyline points="191,25 201,20 201,30 191,25" stroke="#D4DDE4" fill="none"/><line x1="201" y1="25" x2="231" y2="25" stroke="#D4DDE4"/><a xlink:href="../API/TouchEvent" target="_top"><rect x="231" y="1" width="100" height="50" fill="#F4F7F8" stroke="#D4DDE4" stroke-width="2px" /><text x="281" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">TouchEvent</text></a></svg></div>
a:hover text { fill: #0095DD; pointer-events: all;}
TouchEvent()
TouchEvent
对象。
This interface inherits properties from its parent,
UIEvent
and
事件
.
TouchEvent.altKey
只读
A Boolean value indicating whether or not the alt key was down when the touch event was fired.
TouchEvent.changedTouches
只读
TouchList
of all the
触摸
objects representing individual points of contact whose states changed between the previous touch event and this one.
TouchEvent.ctrlKey
只读
A Boolean value indicating whether or not the control key was down when the touch event was fired.
TouchEvent.metaKey
只读
A Boolean value indicating whether or not the meta key was down when the touch event was fired.
TouchEvent.shiftKey
只读
A Boolean value indicating whether or not the shift key was down when the touch event was fired.
TouchEvent.targetTouches
只读
TouchList
of all the
触摸
objects that are both currently in contact with the touch surface
and
were also started on the same element that is the target of the event.
TouchEvent.touches
只读
TouchList
of all the
触摸
objects representing all current points of contact with the surface, regardless of target or changed status.
TouchEvent.rotation
只读
0.0
TouchEvent.scale
只读
1.0
There are several types of event that can be fired to indicate that touch-related changes have occurred. You can determine which of these has happened by looking at the event's
TouchEvent.type
特性。
touchstart
Sent when the user places a touch point on the touch surface. The event's target will be the
element
in which the touch occurred.
touchend
Sent when the user removes a touch point from the surface (that is, when they lift a finger or stylus from the surface). This is also sent if the touch point moves off the edge of the surface; for example, if the user's finger slides off the edge of the screen.
The event's target is the same
element
that received the
touchstart
event corresponding to the touch point, even if the touch point has moved outside that element.
The touch point (or points) that were removed from the surface can be found in the
TouchList
指定通过
changedTouches
属性。
touchmove
Sent when the user moves a touch point along the surface. The event's target is the same
element
that received the
touchstart
event corresponding to the touch point, even if the touch point has moved outside that element.
This event is also sent if the values of the radius, rotation angle, or force attributes of a touch point change.
注意: The rate at which
touchmove
events is sent is browser-specific, and may also vary depending on the capability of the user's hardware. You must not rely on a specific granularity of these events.
touchcancel
Sent when a touch point has been disrupted in some way. There are several possible reasons why this might happen (and the exact reasons will vary from device to device, as well as browser to browser):
触摸
在
TouchList
gets canceled.
It's important to note that in many cases, both touch and mouse events get sent (in order to let non-touch-specific code still interact with the user). If you use touch events, you should call
preventDefault()
to keep the mouse event from being sent as well.
The exception to this is Chrome, starting with version 56 (desktop, Chrome for android, and android webview), where the default value for the
passive
option for
touchstart
and
touchmove
is
true
and calls to
preventDefault()
will have no effect. To override this behavior, you need to set the
passive
选项到
false
, after which calling
preventDefault()
will work as specified. The change to treat listeners as
passive
by default prevents the listener from blocking page rendering while a user is scrolling. A demo is available on the
Google Developer
site.
GlobalEventHandlers
mixin defines these events as global events that are available on any element in the DOM that the user can interact with.
GlobalEventHandlers.ontouchstart
touchstart
事件。
GlobalEventHandlers.ontouchend
touchend
事件。
GlobalEventHandlers.ontouchmove
touchmove
事件。
GlobalEventHandlers.ontouchcancel
touchcancel
事件。
见 example on the main Touch events article .
| 规范 | 状态 | 注释 |
|---|---|---|
|
Touch Events – Level 2
The definition of 'TouchEvent' in that specification. |
草案 |
添加
ontouchstart
,
ontouchend
,
ontouchmove
,
ontouchend
global attribute handlers
|
|
触摸事件
The definition of 'TouchEvent' in that specification. |
推荐 | 初始定义。 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
TouchEvent
|
Chrome 22 |
Edge
79
|
Firefox
52
|
IE No | Opera 15 | Safari No | WebView Android ≤37 | Chrome Android 25 | Firefox Android 6 | Opera Android 14 | Safari iOS Yes | Samsung Internet Android 1.5 |
TouchEvent()
构造函数
|
Chrome
48
|
Edge
≤79
|
Firefox ? | IE No | Opera Yes | Safari No |
WebView Android
48
|
Chrome Android
48
|
Firefox Android Yes | Opera Android Yes | Safari iOS 3.2 |
Samsung Internet Android
5.0
|
altKey
|
Chrome 22 | Edge ≤18 |
Firefox
52
|
IE No | Opera Yes | Safari No | WebView Android Yes | Chrome Android Yes | Firefox Android 6 | Opera Android Yes | Safari iOS Yes | Samsung Internet Android Yes |
changedTouches
|
Chrome 22 | Edge ≤18 |
Firefox
52
|
IE No | Opera Yes | Safari No | WebView Android Yes | Chrome Android Yes | Firefox Android 6 | Opera Android Yes | Safari iOS Yes | Samsung Internet Android Yes |
ctrlKey
|
Chrome 22 | Edge ≤18 |
Firefox
52
|
IE No | Opera Yes | Safari No | WebView Android Yes | Chrome Android Yes | Firefox Android 6 | Opera Android Yes | Safari iOS Yes | Samsung Internet Android Yes |
metaKey
|
Chrome 22 | Edge ≤18 |
Firefox
52
|
IE No | Opera Yes | Safari No | WebView Android Yes | Chrome Android Yes | Firefox Android 6 | Opera Android Yes | Safari iOS Yes | Samsung Internet Android Yes |
shiftKey
|
Chrome 22 | Edge ≤18 |
Firefox
52
|
IE No | Opera Yes | Safari No | WebView Android Yes | Chrome Android Yes | Firefox Android 6 | Opera Android Yes | Safari iOS Yes | Samsung Internet Android Yes |
targetTouches
|
Chrome 22 | Edge ≤18 |
Firefox
52
|
IE No | Opera Yes | Safari No | WebView Android Yes | Chrome Android Yes | Firefox Android 6 | Opera Android Yes | Safari iOS Yes | Samsung Internet Android Yes |
touches
|
Chrome 22 | Edge ≤18 |
Firefox
52
|
IE No | Opera Yes | Safari No | WebView Android Yes | Chrome Android Yes | Firefox Android 6 | Opera Android Yes | Safari iOS Yes | Samsung Internet Android Yes |
完整支持
不支持
兼容性未知
见实现注意事项。
用户必须明确启用此特征。
TouchEvent