È possibile modificare l'animazione duration
di un'animazione jQuery attualmente in esecuzione tra due valori diversi?Modifica la durata dell'animazione di jQuery durante l'animazione
Ho provato a cambiare il duration
tramite assegnazione diretta, ma senza successo:
var timing = { duration: 4000 };
$(document).click(function (e) {
timing.duration = 1000;
});
$('#foo').animate({top:200, left:200}, timing);
... e anche, cambiando il fx.options.duration
in step
-Metodo non influenza l'animazione in esecuzione:
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
}
});
Ecco uno fiddle per giocare. Qualche idea su come si può fare?
Se si passa da jQuery 2.0 a jQuery> = 1.7.2 esso (in qualche modo) funziona. Immagino che abbia a che fare con le recenti modifiche apportate dal team jQuery alle funzioni relative alle animazioni. – Mahn
@ Mahn Sì, grazie! Ho notato che ... sono al centro ora, prova a capire come farlo! – yckart