大家早上好,
我正在尝试创建一个Mootools效果来显示和隐藏对讨论板上的评论的回复。当用户点击评论中的“回复”链接时,我想增加评论容器的高度,然后淡入回复内容。如果回复内容已经可见,单击该链接将反转效果。
我已经让它在某种程度上工作了,但我在获取隐藏元素的正确高度(JS中的repliesH)时遇到了问题。我尝试过getDimensions()、measure()和getComputedSize(),但它们都给出了相同的结果:当元素设置为display:none时,我得到的高度太小;当我将它们设置为display:block时,高度是正确的。有没有好心人能发现我哪里错了?
http://jsfiddle.net/andfinally/tVBCa/
干杯,弗雷德
=======================
稍晚一点
我刚刚注意到- .comments-list容器的宽度似乎与这个问题有关。当我移除该宽度时,效果可以正常工作。这可能意味着,当元素未嵌套在任何内容中时,getDimensions将获得该元素的高度。有人能建议我如何计算出嵌套时的高度是多少吗?
干杯,弗雷德
发布于 2011-05-07 20:12:08
你可以使用Fx.Reveal,当你遇到这类问题时,它非常有用,而且它大大简化了你的代码,例如(我在你的例子中使用了forked ) => http://jsfiddle.net/steweb/DH27F/
发布于 2011-05-07 20:07:11
一种简单的解决方法:
replies.show();
var repliesH = replies.getDimensions().y;
replies.hide();只需显示它,获取尺寸并再次隐藏它。它运行得如此之快,以至于用户都看不到。
你更新的提琴here。
https://stackoverflow.com/questions/5920854
复制相似问题