PointerEvent

PointerEvent 接口表示由指针(例如鼠标、笔或触控启用表面的接触点)产生的 DOM 事件的状态,例如接触点的几何形状、产生事件的设备类型、施加在接触表面的压力大小等。

指针 是对输入设备(如鼠标、笔或触控启用表面的接触点)的硬件无关表示。指针可以定位到接触表面的特定坐标(或一组坐标),例如屏幕。

指针的命中测试 是浏览器用于确定指针事件的目标元素的过程。通常,这是通过考虑指针的位置以及屏幕媒体上文档中元素的视觉布局来确定的。

Event UIEvent MouseEvent PointerEvent

构造函数

PointerEvent()

创建合成(且不可信)的PointerEvent

实例属性

此接口继承自MouseEventEvent

PointerEvent.altitudeAngle 只读 实验性

表示传感器(指针或触控笔)轴线与设备屏幕的 X-Y 平面之间的角度。

PointerEvent.azimuthAngle 只读 实验性

表示 Y-Z 平面与包含传感器(指针或触控笔)轴线和 Y 轴的平面之间的角度。

PointerEvent.persistentDeviceId 只读 实验性

生成PointerEvent的指向设备的唯一标识符。

PointerEvent.pointerId 只读

导致事件的指针的唯一标识符。

PointerEvent.width 只读

指针接触几何形状的宽度(X 轴上的大小),以 CSS 像素为单位。

PointerEvent.height 只读

指针接触几何形状的高度(Y 轴上的大小),以 CSS 像素为单位。

PointerEvent.pressure 只读

指针输入的归一化压力,范围为01,其中01 分别代表硬件能够检测到的最小和最大压力。

PointerEvent.tangentialPressure 只读

指针输入的归一化切向压力(也称为桶压力或圆柱应力),范围为-11,其中0 是控件的中性位置。

PointerEvent.tiltX 只读

Y–Z 平面与包含指针(例如触控笔)轴线和 Y 轴的平面之间的平面角(以度为单位,范围为-9090)。

PointerEvent.tiltY 只读

X–Z 平面与包含指针(例如触控笔)轴线和 X 轴的平面之间的平面角(以度为单位,范围为-9090)。

PointerEvent.twist 只读

指针(例如触控笔)绕其主轴的顺时针旋转角度(以度为单位),值范围为0359

PointerEvent.pointerType 只读

指示导致事件的设备类型(鼠标、笔、触控等)。

PointerEvent.isPrimary 只读

指示指针是否代表此指针类型的首要指针。

实例方法

PointerEvent.getCoalescedEvents() 安全上下文

返回已合并到已分派的pointermove 事件中的所有PointerEvent 实例的序列。

PointerEvent.getPredictedEvents()

返回浏览器预测将在已分派的pointermove 事件的合并事件之后发生的PointerEvent 实例的序列。

指针事件类型

PointerEvent 接口有几种事件类型。要确定哪个事件被触发,请查看事件的type 属性。

注意:重要的是要注意,在许多情况下,都会发送指针和鼠标事件(为了让非指针特定的代码仍然可以与用户交互)。如果您使用指针事件,您应该调用preventDefault() 以阻止鼠标事件也被发送。

pointerover

当指向设备移动到元素的命中测试边界内时,会触发此事件。

pointerenter

当指向设备移动到元素或其后代的命中测试边界内时,会触发此事件,包括作为来自不支持悬停的设备的pointerdown 事件的结果(请参阅pointerdown)。此事件类型类似于pointerover,但不同之处在于它不会冒泡。

pointerdown

当指针变为活动时,会触发此事件。对于鼠标,当设备从未按下任何按钮转换为至少按下了一个按钮时,会触发此事件。对于触控,当与数字化仪进行物理接触时,会触发此事件。对于笔,当触控笔与数字化仪进行物理接触时,会触发此事件。

注意:对于允许直接操控 的触控屏幕浏览器,pointerdown 事件会触发隐式指针捕获,这会导致目标捕获所有后续的指针事件,就好像它们发生在捕获目标上一样。因此,只要设置了此捕获,pointeroverpointerenterpointerleavepointerout 不会触发。可以通过在目标元素上调用element.releasePointerCapture 手动释放捕获,或者在pointeruppointercancel 事件后隐式释放捕获。

pointermove

当指针坐标发生变化时,会触发此事件。

pointerrawupdate 实验性

当指针的任何属性发生变化时,会触发此事件。

pointerup

当指针不再活动时,会触发此事件。

pointercancel

如果浏览器得出结论,指针将不再能够生成事件(例如相关设备已停用),则浏览器会触发此事件。

pointerout

由于以下几个原因会触发此事件,包括:指向设备移出了元素的命中测试边界;触发不支持悬停的设备的pointerup 事件(请参阅pointerup);在触发pointercancel 事件后(请参阅pointercancel);当触控笔离开数字化仪可检测到的悬停范围时。

pointerleave

当指向设备移出了元素的命中测试边界时,会触发此事件。对于触控笔设备,当触控笔离开数字化仪可检测到的悬停范围时,会触发此事件。

gotpointercapture

当元素接收到指针捕获时,会触发此事件。

lostpointercapture

此事件在指针捕获被释放后触发。

示例

每个属性、事件类型和全局事件处理程序的示例都包含在各自的参考页面中。

规范

规范
指针事件
# pointerevent-interface

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅