我需要測量隱藏元素內的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