wie man zwei Dinge gleichzeitig in jQuery animiert

8

Ich möchte 2 Dinge gleichzeitig animieren, wenn die Maus etwas bewegt.

zum Beispiel möchte ich die Hintergrundfarbe von box1 mit id="box1" und die Position von box2 mit id="box2" ändern, wenn die Maus ein div mit id="trigger" schwebt.

aber ich möchte nicht, dass sie in einer Warteschlange, d. h. nacheinander, animiert werden. Ich möchte, dass sie gleichzeitig anfangen zu animieren und gleichzeitig zu beenden!

    
Mehran 04.09.2010, 13:01
quelle

4 Antworten

15

Sie können sie einfach nacheinander ausführen:

%Vor%

Dies verwendet .hover() , um beim Hovering eine Richtung zu animieren, und animiert sie zurück wenn Verlassen. Die .stop() dient lediglich dazu, den Aufbau von Animationswarteschlangen zu verhindern. Um eine Farbe zu animieren, benötigen Sie entweder das Farb-Plug-in oder jQuery UI ebenfalls enthalten.

Animationen in jquery, .animate() , werden implementiert mit setInterval() mit einem 13ms-Timer, so dass sie außerhalb des normalen Ablaufs passieren ... tun sie wie oben warten nicht auf den ersten zu beenden, werden sie gleichzeitig laufen.

    
Nick Craver 04.09.2010, 13:04
quelle
4

Wenn die erste Animation startet, wird die nächste Codezeile ausgeführt, ohne dass die Animation beendet wird.

Also zwei Dinge auf einmal tun:

%Vor%     
Amy B 04.09.2010 13:05
quelle
3

Lesen Sie jQuery.animate () . Es gibt queue Eigenschaft:

  

queue : Ein boolescher Wert, der angibt, ob die Animation in der Effekt-Warteschlange platziert werden soll. Wenn false , beginnt die Animation sofort.

    
Anpher 04.09.2010 13:08
quelle
2

Es stimmt zwar, dass aufeinanderfolgende Aufrufe von animate das Aussehen haben, das sie gleichzeitig ausführen, aber die zugrunde liegende Wahrheit ist, dass es sich um unterschiedliche Animationen handelt, die sehr parallel zueinander verlaufen.

Um sicherzustellen, dass die Animationen tatsächlich gleichzeitig ausgeführt werden, verwenden Sie:

%Vor%

Weitere Animationen können der "trigger-hover" -Warteschlange hinzugefügt werden und alle können gestartet werden, wenn die letzte Animation sie aus der Warteschlange entfernt.

Prost, Anthony

    
Borgboy 11.02.2017 22:57
quelle