是否有可能在两个不同的值之间更改当前运行的jQuery动画的duration
?在动画过程中更改jQuery的动画持续时间
我试图通过直接分配改变duration
,但没有成功:
var timing = { duration: 4000 };
$(document).click(function (e) {
timing.duration = 1000;
});
$('#foo').animate({top:200, left:200}, timing);
......甚至,改变fx.options.duration
在step
- 方法不影响正在运行的动画:
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
@Mahn是的,谢谢!我注意到......我现在处于核心位置,试图弄清楚如何摆弄出来! – yckart