为什么document.elementFromPoint受指针事件影响:无?

Bry*_*ing 13 javascript css

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

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

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

我只在最新的Chrome中测试了这个.我确信每个浏览器都会以不同的方式对待它.我主要对基于webkit的浏览器感到好奇,但是关于其他浏览器的更多信息总是受欢迎的.

jam*_*ase 13

规格告诉我们元素是通过命中测试确定的,因此Chrome似乎在这里表现得很好.其他浏览器可能采用不同的方式,但如果他们遵循规范,那么您应该期望这pointer-events会阻止它运行.

稍后在规范中,它提到W3C目前没有明确定义命中测试.但是,假设他们至少使用类似于该术语的常用用法的东西,可能是安全的.