获取元素的宽度而不进行重排

时间:2016-10-13 12:09:19

标签: javascript html css performance

在将它们插入DOM之前,我需要获得许多小<div> - 元素的大小。

目前,我暂时添加它们,获取offsetWidthoffsetHeight,然后我再次将其删除:

document.body.appendChild(child);
size = [child.offsetWidth, child.offsetHeight]
document.body.removeChild(child);

问题是,这是超慢的,因为它会为每个被测量的<div>触发回流。

你知道如何加快速度吗?

1 个答案:

答案 0 :(得分:0)

如果有人仍在寻找如何在没有回流的情况下获得边界的答案(就像我一样),请使用 IntersectionObserver 及其 boundingClientRect 接口。

您可以在此处阅读更多信息https://toruskit.com/blog/how-to-get-element-bounds-without-reflow