首页 > 解决方案 > 使用 PointerEvents 在同一目标上检测两个手指触摸

问题描述

我在屏幕(画布)上有很大的 HTML 元素,我想检测多点触控事件。使用“touchstart”你有“touches”属性,但使用 PointerEvents 我不知道有什么方法可以知道是否发生了多点触控(除了检查是否有超过 1 个目标,这在屏幕上有大元素时显然是不可能的。甚至可能吗?

一些澄清代码:

canvas.addEventListener("pointerdown", (e) => {
    // is pointer down is multitouch?
});

VS。

canvas.addEventListener("touchstart", (e) => {
    console.log(e.touches.length);
});

非常感谢 :)

标签: javascriptecmascript-6mobile-websitepointer-events

解决方案


使用 PointerEvent,您必须将事件缓存在pointerdown并取消缓存在pointerup.

我要说的更多内容只是复制 MDN 已有的确切示例:https ://developer.mozilla.org/en-US/docs/Web/API/Pointer_events/Multi-touch_interaction


推荐阅读