Javascript 在JQuery中设置变量动画

Javascript 在JQuery中设置变量动画,javascript,jquery,Javascript,Jquery,我一次为几个元素设置动画,一些元素的最终属性取决于其他元素的属性。例如,我喜欢$('#a').animate({height:$('#b').height()}),但是$('#b').height()在动画过程中会发生变化。有没有办法使动画在最后的$(“#b').height()处结束?我假设您希望对#a的高度设置动画,以匹配#b的最终高度,即元素在动画之后的高度 您可以通过在step函数中更新fx对象的end值来实现这一点。例如: var $a = $('#a').animate({heigh

我一次为几个元素设置动画,一些元素的最终属性取决于其他元素的属性。例如,我喜欢
$('#a').animate({height:$('#b').height()})
,但是
$('#b').height()
在动画过程中会发生变化。有没有办法使动画在最后的
$(“#b').height()
处结束?

我假设您希望对
#a
的高度设置动画,以匹配
#b
最终高度,即元素在动画之后的高度

您可以通过在step函数中更新
fx
对象的
end
值来实现这一点。例如:

var $a = $('#a').animate({height: 50}, 2000);

$('#b').animate({height: $a.height()}, {
    duration: 2000,
    step: function(now, fx) {
        if (fx.prop === 'height') {
            fx.end = $a.height();
        }
    }
});
(注意:我是以相反的方式获得元素名称的)

当然,这仅在第二个动画的长度至少与其所依赖的动画相同时才起作用


更多信息请参见。

不,不太清楚。一旦将这些值传递给动画,就会给出速度和开始/结束值。您可以尝试在每次
$('#b')更改时重新运行动画。height()
$('#a').stop()更改。设置动画({height:$('#b').height()})
如何计算
#b
的新高度?这会很有帮助。
$(“#b”).height()是如何定义的?上的示例有助于理解您想要什么。您使用“当前
$('#b').height()
是什么意思?