浏览器如何知道我的鼠标光标指向哪个元素?

时间:2019-10-29 08:02:06

标签: javascript dom browser dom-events

我正在阅读有关dom事件传播的一些帖子,我明白了。但是,我真的很好奇浏览器如何知道单击了哪个文档元素(或光标位于上方)。

我假设操作系统提供了一些特殊的接口,浏览器可以通过该接口获取鼠标指针的坐标。如果是这样,浏览器可以只计算鼠标指针下的哪个文档元素,对吗? 为什么需要浏览器实现事件传播?只是为了知道发生在后代元素上的交互,以便可以通知祖先吗?

我将不胜感激任何支持的引用或评论。

2 个答案:

答案 0 :(得分:3)

  

浏览器如何知道我的鼠标光标指向哪个元素?

Word等等知道光标在文档中的位置。

  

我假设操作系统提供了一些特殊的界面,浏览器可以通过该界面获取鼠标指针的坐标。

这不是“特殊”功能,但是,操作系统会通知应用程序鼠标所在的位置。

  

如果是这样,浏览器可以只计算鼠标指针下方的文档元素,对吧?

是的。就是这样。

  

为什么需要浏览器实现事件传播?

除了DOM specificationDOM UI Events specification中定义的内容外,没有其他任何功能,因为进行传播确实很有用。您可以从DOM UI Events规范的this section了解更多有关它的信息,其中除其他外,还有一个可爱的图表,极大地帮助了我几年前对该过程的理解:

enter image description here

答案 1 :(得分:0)

enter image description here

当您单击要控制的DOM元素时 查看图片,您不要只单击按钮,您要按下所有内容(也在下面)

u按下按钮,按钮按下DIV,div按下窗口……使用传播,您可以轻松控制