首先,我已经阅读了文档说 pointerId 没有传达任何意义 ,但在某种程度上感觉就像它一样。
从pointerdown台式计算机上检索事件时,您可以看到该pointerId属性始终为 1。我使用它来验证pointerdown事件是否来自鼠标单击。
但是,当我打开 Chrome 开发人员工具并使用响应模式并将其更改为移动设备时,比如说 Pixel 2,然后我点击屏幕(模拟为触摸事件)pointerId,每次点击都会增加。
再说一次,我明白它没有意义,但为什么它在桌面上保持 1 而在移动设备上无限上升?
我插入了一个简单的片段,当您在页面上运行时,每次点击都会显示 1,如果您在桌面上,点击整页并切换到响应模式并选择移动设备,它会显示增值。
window.addEventListener('pointerdown', (event) => {
console.log(event.pointerId);
});
更新
感谢评论,我意识到pointerId每次都会增加,因为可能有谁知道有多少手指触摸移动设备的屏幕,所以没有办法将它们与其他手指区分开来。
为什么我需要(想要)跟踪pointerId?
假设我正在制作一个应用程序,它在桌面上只需要 1 个鼠标指针,但在移动设备上需要 2 个手指来与应用程序交互。
我需要跟踪左手指在屏幕上的位置以及它引起的事件,右手手指也是如此。问题出现在增量pointerId出现的地方是我无法分辨哪个手指正在触摸屏幕。
有没有人遇到过这样的问题的解决方案?