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

5

我正在构建一个可以通过鼠标或触摸使用的接口,但用户可能由于各种身体问题而难以命中其所需的目标。

指针事件似乎非常适合这个问题,但是我收到了不同的行为。

我想知道指针何时进入和离开目标,以及何时按下它。如果我使用鼠标,在目标T1上按下鼠标按钮并移动(同时保持按住按钮)到目标T2,则会得到pointerover T1、pointerdown T1、pointerout T1、pointerover T2、pointerup T2。正如我所期望的那样。

在触摸屏上,我只得到pointerover T1、pointerdown T1、pointerup T1。没有信号表明我从一个目标移到另一个目标。

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

这是在 Linux Ubuntu 上的 Chrome 99 上。

1个回答

8
答案在这里。如果目标已经捕获了指针,那么调用releasePointerCapture。
div.addEventListener('pointerdown', function(e) {
  if (e.target.hasPointerCapture(e.pointerId)) {
      e.target.releasePointerCapture(e.pointerId);
  }
}

然后触摸就像鼠标一样。


非常感谢!我尝试了很多方法让触摸事件像鼠标事件一样工作,但都没有成功。现在它完美地工作了! - Bruno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接