Javascript 中鼠标、触摸和指针事件之间的关系

Relation between mouse, touch and pointer events in Javascript

提问人:Harald 提问时间:11/17/2023 更新时间:11/17/2023 访问量:15

问:

为了让 Web 应用程序能够正确地处理事件,使其能够很好地处理鼠标和触摸事件,我开始使用指针事件,其中鼠标和触摸处理应该基本相同。然而,这有时会以奇怪的方式干扰默认绑定。为了更好地理解如何正确避免这种情况,我有以下几点

问题:任何人都可以指出描述以下内容的文章或规范吗?

  • 我们按什么顺序获取指针、鼠标、触摸事件,以便在支持它们的设备上进行相同的用户交互
  • 有没有办法判断指针和鼠标事件它们是否源自同一用户交互
  • 同一用户交互事件是交错的还是一个接一个地冒泡

或者,我很高兴在这里得到文章。也许这些事件之间的整个关系以及它们(通常)如何处理可以比我想象的更简洁地描述。

JavaScript mouseevent touch-event 指针事件

评论


答:

0赞 Jeff Sloyer 11/17/2023 #1

触摸事件 W3C 推荐是 Apple 在 2008 年发布 iOS 2.0 时引入的。触摸事件将触摸屏输入(并且仅触摸屏输入)转换为类似于传统鼠标事件(touchstart=mousedown、touchend=mouseup)的事件。

指针事件 W3C 建议将一大堆输入方法封装在一个抽象层中。鼠标、触摸和笔输入都转换为应用程序可以响应的一个通用“指针”事件。

并非所有浏览器都支持指针事件,请参阅此处