如果我们在将元素添加到DOM之前计算元素的大小,则结果是错误的,请参见此处的第三行代码:
var elt = document.createElement('div');
elt.innerHTML = "Blah";
console.log(elt.getBoundingClientRect()); // here : 0, 0, 0, 0, 0, etc.
document.body.appendChild(elt);
console.log(elt.getBoundingClientRect()); // here : 8, 8, 623, 20, 8, 631, 28, 8
在将元素添加到DOM之前如何计算元素的大小?
最佳答案
添加元素,获取其边界,然后删除。它不会出现在屏幕上。
var elt = document.createElement('div');
elt.innerHTML = "Blah";
document.body.appendChild(elt);
var bounds = elt.getBoundingClientRect();
document.body.removeChild(elt);
document.getElementById("bounds").innerHTML = JSON.stringify(bounds);
<div id="bounds">bounds?</div>
关于javascript - 将元素添加到DOM之前的大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26589511/