为什么是文档.受pointer-events影响的elementFromPoint:无

Why is document.elementFromPoint affected by pointer-events: none?

本文关键字:elementFromPoint 影响 pointer-events 文档 为什么      更新时间:2023-09-26

如果您使用document.elementFromPoint(x,y),并且多个元素位于所提供的坐标,则应该返回最顶层的元素(在视觉堆叠顺序中最顶层,而不是源代码)。

如果最上面的元素在CSS中设置了pointer-events: none,则document.elementFromPoint看不到它。这个小提琴演示了效果。

这是预期的行为吗?看起来浏览器在您提供的查找元素的坐标上触发了一个点击事件(一个秘密的点击事件,不会触发附加的点击处理程序或默认行为)。有没有办法看到document.elementFromPoint是如何实现在不同的浏览器?一个CSS属性会影响一个完全不相关的DOM函数的行为,这看起来相当奇怪。

我只在最新的Chrome中测试过这个。我确信每个浏览器都以不同的方式处理这个问题。我主要对基于webkit的浏览器感兴趣,但更多关于其他浏览器的信息总是受欢迎的。

规格告诉我们元素是通过命中测试确定的,所以Chrome似乎在这里表现正常。其他浏览器可能会有不同的做法,但如果他们遵循规范,那么你应该期望pointer-events会阻止它运行。

规范后面提到,W3C目前还没有明确定义命中测试。然而,可以肯定的是,他们至少使用了一些类似于术语的常用用法。

相关文章:
  • 没有找到相关文章