2011-05-07 37 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