Ich habe eine timeline
-Definition, die Selektoren und eine Liste von Verzögerungen und Animationen für dieses Objekt auflistet. Sie können festlegen, dass die Schritte für ein bestimmtes Objekt wiederholt werden.
Hier ist die Funktion, mit der die Animationen in die Warteschlange gestellt werden:
%Vor% Hier ist die timeline
Information
Und hier ist die Funktion, die timeline
in die obige animierte Funktion stellt:
Hier ist ein vollständiges Beispiel. Ссылка
Dieser Code scheint gut zu funktionieren, die Animationsschleife und die Stopptaste können angeklickt werden, um die Animationen zu stoppen, die Warteschlangen usw. zu löschen. Das Problem, auf das wir stoßen, kann ausgelöst werden, indem man stop anfängt und wieder und wieder beginnt 10 mal). Dann merke, dass die Verzögerungen nicht mehr korrekt funktionieren und die Formen sich viel schneller bewegen.
Warum ist das und wie kann es behoben werden?
Etwas funktioniert nicht richtig mit delay
...
Als Umgehung habe ich es durch doTimeout
in diese Geige , also folgendes:
Wird:
%Vor% timeouts
ist ein Array mit eindeutigen Timeout-IDs, die beim Drücken der Stop-Taste gelöscht werden.
Wie gesagt, eher ein Workaround als ein Fix, da Sie auch die Position der Elemente beim Stop zurücksetzen müssen. (Beachten Sie, dass ich die + = und - = aus den Definitionen oben / rechts entfernt habe)
Wenn ich auf Ihren Stop-Handler schaue, würde ich vermuten, dass die .stop () -Meldung fehlschlägt. Ich würde es auf .circle und .square anstelle der Holding div. Ziel.
Hatte mal ein Problem mit animate, da sich das Element immer schneller und schneller bewegte und zu dem Schluss kam, dass animate sich auf sich selbst stapelte.
api.jquery.com/clearQueue/ und Ссылка könnten nützlich sein
Tags und Links javascript jquery jquery-animate