早上好,
我正在尝试创建一个Mootools效果来显示和隐藏对讨论板上评论的回复。当用户单击评论中的“回复”链接时,我想增加评论容器的高度,然后淡出回复内容。如果回复内容已经可见,单击该链接将反转该效果。
我有点工作,但是我无法获得隐藏元素的正确高度(在我的JS中回复H)。我尝试过getDimensions(),measure()和getComputedSize(),但是它们都给出了相同的结果:当元素设置为display:none时,我得到的高度太小;当我将它们设置为显示时:阻止高度正确。任何善良的人都可以找到我出错的地方吗?
http://jsfiddle.net/andfinally/tVBCa/
干杯 佛瑞德
=======================
稍后一点
刚刚注意到.comments列表容器的宽度似乎与此问题有关。当我删除该宽度时效果正常。这可能意味着当getDimensions没有嵌套在任何东西时,它会获得元素的高度。任何人都可以建议我如何计算嵌套时的高度?
干杯 佛瑞德
答案 0 :(得分:4)
你可以使用Fx.Reveal,当你遇到这些问题时它非常有用,它简化了很多你的代码,即(我已经分了你的例子)=> http://jsfiddle.net/steweb/DH27F/
答案 1 :(得分:1)
解决问题的简单方法:
replies.show();
var repliesH = replies.getDimensions().y;
replies.hide();
只需展示它,获取尺寸并再次隐藏它。这种运行速度非常快,以至于用户都看不到。
您更新的小提琴here。