我需要测量隐藏元素内的div的offsetHeight。需要找到页面上隐藏div的高度(设置为显示:无)
<div id="parent" style="display: none;">
<div id="child">Lorem Ipsum dolor sit amet.</div>
</div>
父DIV 必须设置为 “display:none
”。我无法控制这一点。我意识到,子div的offsetHeight将为0.我需要找到一种解决方法。
我玩过的东西是当页面加载时,我复制父节点的子节点,注入设置为“visiblity:hidden
”的页面上的div。然后我测量这些元素的高度,并在完成时移除节点。
还有其他想法吗?
更新: 我结束了不得不做的是:
使用YUI 2,在页面加载时,我发现,要么设置为显示给定类名的所有元素:其无,或高度和宽度为0(这是测量某个元素是否存在的一种方法,或者父级设置为显示:无)。然后我设置该元素来显示:block。然后我检查了它的父母是否有相同的事情,并向父母展示,直到找到可见的父母。一旦最高显示:无祖先设置为显示:块,我可以测量我的元素。
一旦所有元素都被测量,我将所有元素都重置为显示:无。
我考虑过这个......这似乎可能是非常资源密集型的......你怎么看? – 2009-09-24 19:13:02
编辑帖子回答您的关注(以及关于替代方法的一些想法)。 – kangax 2009-09-24 21:28:43
我无法看到任何闪烁,同时每分钟显示元素。我采取了只在显示高度时才显示它的方法,然后隐藏它。这也是jQuery的slideToggle()所做的。它很好地工作。 +1 – 2013-01-08 22:13:53