2011-05-07 35 views
2

上午所有,MooTools的:隱藏要素的高度

我試圖創建一個MooTools的效果顯示和隱藏答覆討論區上留言。當用戶點擊評論中的「回覆」鏈接時,我想增加評論容器的高度,然後淡入回覆內容。如果回覆內容已經可見,點擊鏈接將會改變效果。

我有這樣的工作,但我很難得到我的隱藏元素的正確高度(在我的JS回覆)。我試過getDimensions(),measure()和getComputedSize(),但它們都給出了相同的結果:當元素設置爲顯示時:無我得到的高度太小;當我設置他們顯示:阻止高度是正確的。任何善良的人都可以發現我要出錯的地方嗎?

http://jsfiddle.net/andfinally/tVBCa/

乾杯 佛瑞德

=======================

稍晚

剛注意到 - .comments-list容器的寬度似乎與這個問題有關。當我刪除該寬度時,效果可以正常工作。這可能意味着getDimensions在沒有嵌套任何東西時會獲取元素的高度。任何人都可以建議我怎樣才能算出嵌套時的高度?

乾杯 弗雷德

回答

4

你可以使用Fx.Reveal,這是非常有用的當u遇到這些類型的問題,它簡化了很多代碼,即(我已經分叉您的示例)=>http://jsfiddle.net/steweb/DH27F/

+0

哇!謝謝stecb,這使整個事情變得更容易。對於任何想知道尺寸問題的人來說,它看起來好像你必須在你要測量的隱藏元素上設置一個寬度,如果你想將它嵌入其他寬度的東西中。 – 2011-05-07 12:20:05

1

一個簡單的方法來解決辦法是:

replies.show(); 
var repliesH = replies.getDimensions().y;    
replies.hide(); 

就表現出來,得到的尺寸,並再次隱藏它。這運行得非常快,以至於用戶都看不到。

您的更新Fiddle here

+0

非常感謝埃裏克!這是解決問題的另一個好方法。 – 2011-05-07 12:21:16