【发布时间】:2013-01-18 08:44:57
【问题描述】:
是否可以在两个不同的值之间更改当前运行的 jQuery 动画的duration?
我尝试通过直接分配更改duration,但没有成功:
var timing = { duration: 4000 };
$(document).click(function (e) {
timing.duration = 1000;
});
$('#foo').animate({top:200, left:200}, timing);
...甚至,更改step-方法中的fx.options.duration 不会影响运行动画:
var state = false,
$(document).click(function (e) {
state = true;
});
$('#foo').animate({top:200, left:200}, {
duration: 4000,
step: function(now, fx){
if(state) fx.options.duration = 1000;
console.log(fx.options.duration); // 1000
}
});
这里有一个 fiddle 可以玩。 任何想法如何做到这一点?
【问题讨论】:
-
如果你从 jQuery 2.0 切换到 jQuery >= 1.7.2 它(有点)工作。我想这与 jQuery 团队最近对动画相关功能所做的更改有关。
-
@Mahn 是的,谢谢!我注意到了……我现在处于核心状态,试着弄清楚如何解决这个问题!
标签: jquery animation jquery-animate state duration