我正在使用别人编写的 Accordion 。当 Accordion 最初显示时,每行的初始高度被持久化,然后将它们的高度设置为 0。然后当该行变为可见时,其高度恢复为原始值。
但在我的例子中, Accordion 的高度会发生变化,因为我正在用数据异步填充它们。所以,当行变得可见时,我想根据它的新内容计算行的高度。但是,因为使用 .css('height', 0)
将其高度设置为 0,所以 $(elem).height()
给出 0。
有没有办法计算元素的高度,而不是仅仅检索它的 css 高度值?
最佳答案
使用 jQuery 的 innerHeight 函数获取元素的计算高度,无边框和边距。
var height = $('#myElement').innerHeight();
编辑: 使用 jQuery 的 outerHeight 函数获取元素的计算高度,包括填充、边框和可选的边距。
//without margin
var height = $('#myElement').outerHeight();
//with margin
var height = $('#myElement').outerHeight(true);
编辑 2: 您还可以将这些结果与原生 Javascript 进行比较。
var el = document.getElementById('myElement');
var height = el.offsetHeight;
关于javascript - 如何计算jQuery中元素的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30486450/