是否有可能在兩個不同的值之間更改當前運行的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