有人能告诉我jQuery是否(和如何)确定使用slideDown()
等内置效果函数动画的元素的最终大小?
举一个实际的例子http://jsfiddle.net/GgCLa/:
CSS:
#wrapper { display: block; }
#wrapper p {
display: none;
}
#wrapper p:first-child {
display: block;
}
HTML:
<div id="wrapper">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Curabitur et quam urna, ultrices commodo odio.</p>
<p>Nulla at tellus augue, varius dignissim nunc. Donec mattis
est quis sem iaculis scelerisque. .</p>
</div>
<input type="button" name="button" id="button" value="Clickey" />
JAVASCRIPT:
$(document).ready(function() {
$("input").toggle(
function() { $("#wrapper p:last").slideDown("fast"); },
function() { $("#wrapper p:last").slideUp("fast"); }
);
});
有没有办法在动画完成之前确定包装器的最终高度?
答案 0 :(得分:2)
解决了安东尼杰克的帮助问题。要在触发动画之前获取包装器的最终大小,包装器中包含的所有元素的高度需要总结如下:
var calcHgt=0;
$("#wrapper *").each(function() {
calcHgt+=$(this).height();
});
更新了小提琴:http://jsfiddle.net/GgCLa/4/
答案 1 :(得分:1)
.outerHeight()和.height()似乎都会返回fiddle中元素的高度,即使该元素当前是隐藏的。