为什么document.elementFromPoint(500,1000)
here如果文档加载时该像素位于可见文档之外,则返回null?
我注意到document.elementFromPoint
为最初在可见文档之外的任何点以及滚动到视图之后返回null。
测试此功能的一种简单方法是在Chrome( ctrl-shift-i - >脚本 - >'监视表达式')中(确保页面高度缩小到小于1000像素) )
编辑:所以它确实有意义,按照docs
我在两个假设上都失败了,
答案 0 :(得分:39)
所以你有点回答了你自己的问题:document.elementFromPoint在视口坐标而不是文档中工作。所以你需要做的就是添加一个滚动补偿。
以下代码为我制定了:
document.elementFromPoint(X - window.pageXOffset, Y - window.pageYOffset);
或者,如果您正在倾听以下活动:
document.elementFromPoint(e.pageX - window.pageXOffset, e.pageY - window.pageYOffset);
答案 1 :(得分:2)
当您在窗口外指定一个点时,它不会返回任何元素。它返回在该点可见的元素,而不是在窗口具有不同大小时可见的元素。请注意,更改窗口的大小可能会导致元素移动,因此如果它确实返回了可能在该点显示的元素,则无法获得一致的答案。
无论你如何在窗口中滚动内容,窗外的一个点仍然在窗外。