在节目动画结束之前获取大小信息

时间:2011-02-15 14:26:55

标签: jquery css animation show

使用jQuery.show()时,有没有办法在动画发生之前访问显示元素的大小信息?

*编辑 - 我想我会给出一个例子,说明我计划在哪里使用它,因为任何解决方法都没有直接做我所问的仍然非常有用:

灯箱内的内容使用.show()进行扩展,但灯箱尺寸和定位必须等待动画结束才能测量新尺寸和调整。结果是两个动画相互跟随,当我想要的是同时运行的2个动画

3 个答案:

答案 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();