Element: pointermove 事件

Baseline 已广泛支持

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

当指针坐标发生变化,且指针尚未被浏览器 touch-action 取消时,会触发 pointermove 事件。它与 mousemove 事件非常相似,但功能更强大。

这些事件的发生与否,与是否按下了任何指针按钮无关。它们可能以非常高的速率触发,这取决于用户移动指针的速度、机器的速度、正在进行的其他任务和进程等。

语法

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

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

onpointermove = (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 只读

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

用法说明

该事件的类型为 PointerEvent,它提供了有关用户与指向设备交互所需的所有信息,包括位置、移动距离、按钮状态等。

示例

要使用 addEventListener()pointermove 事件添加处理程序

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

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

你也可以使用 onpointermove 事件处理程序属性

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

para.onpointermove = (event) => {
  console.log("Pointer moved");
};

规范

规范
指针事件
# the-pointermove-event
指针事件
# dom-globaleventhandlers-onpointermove

浏览器兼容性

另见