使用jQuery.show()时,有没有办法在动画发生之前访问显示元素的大小信息?
*编辑 - 我想我会给出一个例子,说明我计划在哪里使用它,因为任何解决方法都没有直接做我所问的仍然非常有用:
灯箱内的内容使用.show()进行扩展,但灯箱尺寸和定位必须等待动画结束才能测量新尺寸和调整。结果是两个动画相互跟随,当我想要的是同时运行的2个动画
答案 0 :(得分:1)
$(“some element”)。css({ 显示:“阻止”,可见性:“隐藏”,位置:“绝对” });
将导致元素采用自然大小但保持隐藏状态。然后,您可以使用.height()和.width()
来安全地测量元素的尺寸希望有所帮助。
答案 1 :(得分:0)
您可以拥有以下内容:
$(document).ready(function() {
var beforeHeight = $('#element').height();
$('#element').animate({
height:350
},250, function() {
var afterHeight = $('#element').height();
});
alert("Before: "+beforeHeight+" \r\n After: " + afterHeight);
});
重新阅读你的问题 - 如果你想要2个动画,一个接一个:
$('#element').animate({
//animate stuff
},250,function() {
$('#element').animate({
//animate more stuff
},250)
});
答案 2 :(得分:-1)
如果我正确理解了这个问题,下面应该这样做。
var height = $("#foo").height();