document.elementFromPoint速度很慢

时间:2017-09-05 01:13:36

标签: javascript performance element point

我在项目中使用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();

1 个答案:

答案 0 :(得分:1)

DOM elementFromPoint 的功能给出topms需要在所有DOM标签内的同一元素的多个点周围循环,最后找到点 {点周围的元素{1}} 谁是我们之间的顶峰。

此处有更多信息:https://drafts.csswg.org/cssom/#documentlayout-elementfrompoint

标记html上的x,y循环(document.getElementsByTagName("*") ...) 比 elementFromPoint 快得多。 此致