如果我们在将元素添加到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之前,如何计算元素的大小?
答案 0 :(得分:1)
添加元素,获取其边界并删除。它不会出现在屏幕上。
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>
&#13;
答案 1 :(得分:0)
你不能,因为视觉尺寸取决于: