PointerEvent: isPrimary 属性

Baseline 已广泛支持

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

PointerEvent 接口中只读的 isPrimary 属性指示创建该事件的指针设备是否是主指针。如果导致事件触发的指针是主指针,则返回 true,否则返回 false

在多指针场景下(例如支持多个触摸点的触摸屏),此属性用于在每种指针类型的活动指针集合中标识一个主指针。只有主指针会生成兼容鼠标事件。想要仅支持单指针交互的开发者可以通过忽略非主指针来实现。

如果指针代表鼠标设备,则该指针被视为主指针。如果其 pointerdown 事件在不存在其他代表笔输入的活动指针时被分派,则代表笔输入的指针被视为主笔输入。如果其 pointerdown 事件在不存在其他代表触摸输入的活动指针时被分派,则代表触摸输入的指针被视为主触摸输入。

当同时使用两种或两种以上类型的指针设备时,多个指针(每种 pointerType 一个)被视为主指针。例如,一个触摸点和一个鼠标光标同时移动将生成都被视为主指针的指针。如果存在多个主指针,这些指针都将生成兼容鼠标事件(有关指针、鼠标和触摸交互的更多信息,请参阅 Pointer events)。

布尔值,如果此事件的指针是主指针,则为 true,否则为 false

示例

此示例演示了如何使用 isPrimary 的值来调用适当的处理函数。

js
target.addEventListener("pointerdown", (event) => {
  if (event.isPrimary) {
    process_primary_pointer(event);
  } else {
    process_secondary_pointer(event);
  }
});

规范

规范
指针事件
# dom-pointerevent-isprimary

浏览器兼容性