sarà comico eppure proprio pochi secondi dopo aver inviato la discussione mi si è accesa la lampadina e ho capito il motivo. lo scrivo e lo lascio ai posteri:
praticamente è a causa di questo(ho evidenziato in rosso)
la funzione interval così definita è una funzione globale ed è chiaro che viene occupata da uno solo dei due movimenti: il primo che la chiama quello si aggiudica il clearinterval.codice:function movement(f, start, int, end){ //con un valore a start maggiore di zero il setInterval può cominciare con un piccolo ritardo, volendo. setTimeout(iteration, start); function iteration() { interval = setInterval(f, int); //se passo anche l'argomento end facio in mod che l'animazione termini if(end) setTimeout( function(){clearInterval(interval)}, end); } }
la soluzione? semplicemente un var prima di quell' "interval".
![]()

Rispondi quotando