我在项目中使用document.elementFromPoint
,看起来很慢。 100,000次迭代需要7051 ms。 100,000 document.getElementsByTagName("*")
次迭代只需要32ms。为什么document.elementFromPoint
慢了200多倍?有没有更快的替代方案?
function elementFromPointSpeed() {
start=performance.now();
for(var i=0;i<100000;i++)
el=document.elementFromPoint(100,100);
//el=document.getElementsByTagName("*");
end=performance.now()
console.log(end-start)
}
elementFromPointSpeed();
答案 0 :(得分:1)
DOM elementFromPoint 的功能给出topms需要在所有DOM标签内的同一元素的多个点周围循环,最后找到点 {点周围的元素{1}} 谁是我们之间的顶峰。
此处有更多信息:https://drafts.csswg.org/cssom/#documentlayout-elementfrompoint
标记html上的x,y
循环(document.getElementsByTagName("*")
...)
比 elementFromPoint 快得多。
此致