如果我们在将元素添加到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/

10-11 13:20