Element: pointerdown 事件

Baseline 已广泛支持

此特性已经十分成熟,可在许多设备和浏览器版本上使用。自 2020 年 7 月以来,它已在各大浏览器中可用。

当指针变为活动状态时,会触发 pointerdown 事件。对于鼠标,当设备从没有按钮按下变为至少有一个按钮按下时触发。对于触摸,当数字转换器与实体接触时触发。对于笔,当触控笔与数字转换器实体接触时触发。

此行为与 mousedown 事件不同。当使用物理鼠标时,只要鼠标上的任何按钮被按下,就会触发 mousedown 事件。pointerdown 事件仅在第一次按下按钮时触发;后续的按钮按下不会触发 pointerdown 事件。

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

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("pointerdown", (event) => { })

onpointerdown = (event) => { }

事件类型

一个 PointerEvent。继承自 Event

Event UIEvent MouseEvent 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 只读

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

示例

使用 addEventListener()

js
const para = document.querySelector("p");

para.addEventListener("pointerdown", (event) => {
  console.log("Pointer down event");
});

使用 onpointerdown 事件处理程序属性

js
const para = document.querySelector("p");

para.onpointerdown = (event) => {
  console.log("Pointer down event");
};

规范

规范
指针事件
# the-pointerdown-event
指针事件
# dom-globaleventhandlers-onpointerdown

浏览器兼容性

另见