Touch对象表示在触控设备上的触摸点。通常是指手指或者触控笔在触屏设备或者触摸板上的操作。
对象属性 Touch.radiusX
, Touch.radiusY
, 和 Touch.rotationAngle
表示用户触摸操作所作用的区域,即触摸区域。这些属性对于处理类似于手指触摸之类的不精确操作很有帮助。这些属性可以表示出一个尽可能匹配触控区域的椭圆形(例如用户的指尖触控)。
注意: 以下很多属性的值需要依赖硬件设备去获取,例如,如果设备本身不支持侦测压感,那么
force
属性的值将始终是0,对于 radiusX
和 radiusY
来说同样可能有这种情况,如果设备认为触点只是一个点而不是一个面, 它们始终为1。 构造函数
Touch()
- 创建一个Touch对象。
属性
以下属性描述了用户的触摸行为
Touch.identifier
此 Touch 对象的唯一标识符
. 一次触摸动作(我们值的是手指的触摸)在平面上移动的整个过程中, 该标识符不变. 可以根据它来判断跟踪的是否是同一次触摸过程. 只读属性.Touch.screenX
- 触点相对于屏幕左边沿的的X坐标. 只读属性.
Touch.screenY
- 触点相对于屏幕上边沿的的Y坐标. 只读属性.
Touch.clientX
- 触点相对于可见视区(visual viewport)左边沿的的X坐标. 不包括任何滚动偏移. 只读属性.
Touch.clientY
- 触点相对于可见视区(visual viewport)上边沿的的Y坐标. 不包括任何滚动偏移. 只读属性.
Touch.pageX
- 触点相对于HTML文档左边沿的的X坐标.
当存在水平
滚动的
偏移时, 这个值包含了水平滚动的偏移
. 只读属性. Touch.pageY
- 触点相对于HTML文档上边沿的的Y坐标.
当存在水平滚动的偏移时, 这个值包含了垂直滚动的偏移
. 只读属性. Touch.radiusX
- 能够包围用户和触摸平面的接触面的最小椭圆的水平轴(X轴)半径. 这个值的单位和
screenX 相同.
只读属性. Touch.radiusY
- 能够包围用户和触摸平面的接触面的最小椭圆的垂直轴(Y轴)半径. 这个值的单位和
screenY 相同.
只读属性. Touch.rotationAngle
它是这样一个角度值:由radiusX
和radiusY
描述的正方向的椭圆,需要通过顺时针旋转这个角度值,才能最精确地覆盖住用户和触摸平面的接触面. 只读属性.Touch.force
- 手指挤压触摸平面的压力大小, 从0.0(没有压力)到1.0(最大压力)的浮点数. 只读属性.
Touch.target
- 当这个触点最开始被跟踪时(在
touchstart
事件中), 触点位于的HTML元素. 哪怕在触点移动过程中, 触点的位置已经离开了这个元素的有效交互区域, 或者这个元素已经被从文档中移除. 需要注意的是, 如果这个元素在触摸过程中被移除, 这个事件仍然会指向它, 但是不会再冒泡这个事件到window
或document
对象. 因此, 如果有元素在触摸过程中可能被移除, 最佳实践是将触摸事件的监听器绑定到这个元素本身, 防止元素被移除后, 无法再从它的上一级元素上侦测到从该元素冒泡的事件. 只读属性.
接触面
Touch.radiusX
, Touch.radiusY
, 和 Touch.rotationAngle
描述了用户和触摸平面的接触面. 这在面向非精确触摸设备(由手指直接操作的触摸屏)开发时非常有用. 这些值描述了一个尽可能接近实际接触面(例如用户的指尖)的椭圆.
示例
请看 example on the main Touch events article.