指针事件与触摸和鼠标事件

Gar*_*hop 6 html javascript mouse touch pointer-events

我正在构建一个应该与鼠标或触摸一起使用的界面。由于各种身体问题,我的用户可能难以达到他们想要的目标。

指针事件似乎对此很完美,但我得到了不同的行为。

我想知道指针何时进入和离开目标,以及何时按下。使用鼠标,如果我在目标 T1 上按下鼠标按钮并移动(同时按住按钮)到目标 T2,我会得到指针悬停 T1、指针向下 T1、指针悬停 T1、指针悬停 T2、指针悬停 T2。正是我所期望的。

通过触摸屏,我得到:指针悬停 T1、指针悬停 T1、指针悬停 T1。没有任何迹象表明我从一个目标转移到另一个目标。

如何使触摸行为更像鼠标?

这是在 Linux Ubuntu 上的 Chrome 99 上。

Gar*_*hop 12

答案是如果目标已捕获指针,则调用releasePointerCapture

div.addEventListener('pointerdown', function(e) {
  if (e.target.hasPointerCapture(e.pointerId)) {
      e.target.releasePointerCapture(e.pointerId);
  }
}
Run Code Online (Sandbox Code Playgroud)

然后触摸的行为就像鼠标一样。