PointerEvent
PointerEvent
接口表示由指针(例如鼠标、笔或触控启用表面的接触点)产生的 DOM 事件的状态,例如接触点的几何形状、产生事件的设备类型、施加在接触表面的压力大小等。
指针 是对输入设备(如鼠标、笔或触控启用表面的接触点)的硬件无关表示。指针可以定位到接触表面的特定坐标(或一组坐标),例如屏幕。
指针的命中测试 是浏览器用于确定指针事件的目标元素的过程。通常,这是通过考虑指针的位置以及屏幕媒体上文档中元素的视觉布局来确定的。
构造函数
PointerEvent()
-
创建合成(且不可信)的
PointerEvent
。
实例属性
此接口继承自MouseEvent
和Event
。
PointerEvent.altitudeAngle
只读 实验性-
表示传感器(指针或触控笔)轴线与设备屏幕的 X-Y 平面之间的角度。
PointerEvent.azimuthAngle
只读 实验性-
表示 Y-Z 平面与包含传感器(指针或触控笔)轴线和 Y 轴的平面之间的角度。
PointerEvent.persistentDeviceId
只读 实验性-
生成
PointerEvent
的指向设备的唯一标识符。 PointerEvent.pointerId
只读-
导致事件的指针的唯一标识符。
PointerEvent.width
只读-
指针接触几何形状的宽度(X 轴上的大小),以 CSS 像素为单位。
PointerEvent.height
只读-
指针接触几何形状的高度(Y 轴上的大小),以 CSS 像素为单位。
PointerEvent.pressure
只读-
指针输入的归一化压力,范围为
0
到1
,其中0
和1
分别代表硬件能够检测到的最小和最大压力。 PointerEvent.tangentialPressure
只读-
指针输入的归一化切向压力(也称为桶压力或圆柱应力),范围为
-1
到1
,其中0
是控件的中性位置。 PointerEvent.tiltX
只读-
Y–Z 平面与包含指针(例如触控笔)轴线和 Y 轴的平面之间的平面角(以度为单位,范围为
-90
到90
)。 PointerEvent.tiltY
只读-
X–Z 平面与包含指针(例如触控笔)轴线和 X 轴的平面之间的平面角(以度为单位,范围为
-90
到90
)。 PointerEvent.twist
只读-
指针(例如触控笔)绕其主轴的顺时针旋转角度(以度为单位),值范围为
0
到359
。 PointerEvent.pointerType
只读-
指示导致事件的设备类型(鼠标、笔、触控等)。
PointerEvent.isPrimary
只读-
指示指针是否代表此指针类型的首要指针。
实例方法
PointerEvent.getCoalescedEvents()
安全上下文-
返回已合并到已分派的
pointermove
事件中的所有PointerEvent
实例的序列。 PointerEvent.getPredictedEvents()
-
返回浏览器预测将在已分派的
pointermove
事件的合并事件之后发生的PointerEvent
实例的序列。
指针事件类型
PointerEvent
接口有几种事件类型。要确定哪个事件被触发,请查看事件的type
属性。
注意:重要的是要注意,在许多情况下,都会发送指针和鼠标事件(为了让非指针特定的代码仍然可以与用户交互)。如果您使用指针事件,您应该调用preventDefault()
以阻止鼠标事件也被发送。
pointerover
-
当指向设备移动到元素的命中测试边界内时,会触发此事件。
pointerenter
-
当指向设备移动到元素或其后代的命中测试边界内时,会触发此事件,包括作为来自不支持悬停的设备的
pointerdown
事件的结果(请参阅pointerdown
)。此事件类型类似于pointerover
,但不同之处在于它不会冒泡。 pointerdown
-
当指针变为活动时,会触发此事件。对于鼠标,当设备从未按下任何按钮转换为至少按下了一个按钮时,会触发此事件。对于触控,当与数字化仪进行物理接触时,会触发此事件。对于笔,当触控笔与数字化仪进行物理接触时,会触发此事件。
注意:对于允许直接操控 的触控屏幕浏览器,
pointerdown
事件会触发隐式指针捕获,这会导致目标捕获所有后续的指针事件,就好像它们发生在捕获目标上一样。因此,只要设置了此捕获,pointerover
、pointerenter
、pointerleave
和pointerout
不会触发。可以通过在目标元素上调用element.releasePointerCapture
手动释放捕获,或者在pointerup
或pointercancel
事件后隐式释放捕获。 pointermove
-
当指针坐标发生变化时,会触发此事件。
pointerrawupdate
实验性-
当指针的任何属性发生变化时,会触发此事件。
pointerup
-
当指针不再活动时,会触发此事件。
pointercancel
-
如果浏览器得出结论,指针将不再能够生成事件(例如相关设备已停用),则浏览器会触发此事件。
pointerout
-
由于以下几个原因会触发此事件,包括:指向设备移出了元素的命中测试边界;触发不支持悬停的设备的
pointerup
事件(请参阅pointerup
);在触发pointercancel
事件后(请参阅pointercancel
);当触控笔离开数字化仪可检测到的悬停范围时。 pointerleave
-
当指向设备移出了元素的命中测试边界时,会触发此事件。对于触控笔设备,当触控笔离开数字化仪可检测到的悬停范围时,会触发此事件。
gotpointercapture
-
当元素接收到指针捕获时,会触发此事件。
lostpointercapture
-
此事件在指针捕获被释放后触发。
示例
每个属性、事件类型和全局事件处理程序的示例都包含在各自的参考页面中。
规范
规范 |
---|
指针事件 # pointerevent-interface |
浏览器兼容性
BCD 表格仅在浏览器中加载