Wie bringe ich eine CSS-Animation beim Hover-Out zum Stillstand?

9

Ich habe eine CSS-Animation, die ein div unendlich dreht, wenn ich darüber schwebe. Das CSS sieht ungefähr so ​​aus:

%Vor%

Das Problem, das ich zu lösen versuche, ist, dass wenn ich schwebe, es plötzlich in seinen ursprünglichen Zustand zurückspringt. Das kann etwas nervend sein, wenn es in der Mitte der Animation ist. Gibt es einen Weg zu langsam Übergang in den ursprünglichen Zustand? Normalerweise können Sie das mit Übergängen machen, aber es scheint nicht in Verbindung mit Animationen zu funktionieren. Zum Beispiel habe ich versucht, -webkit-transition: all 2s; zum #square Selektor im obigen Beispiel hinzuzufügen, aber es hat nichts gemacht.

Beispiel: Ссылка

    
jnrbsn 17.05.2014, 22:11
quelle

1 Antwort

3

Ich habe ein paar Stunden mit diesem hier verbracht und denke, dass ich es endlich verstanden habe.

Hier ist ein Link zum JSFiddle

Im Wesentlichen wird #square das CSS-Attribut animation-name:rotate; hinzugefügt, um die unendliche Drehung zu initiieren. Dann fügt eine andere Funktion, die auf mouseout ausgelöst wird, animationiteration einen Ereignis-Listener hinzu, so dass die Animation bei der Iteration die Rotation beenden kann. Um die Rotation zu beenden, erhält #square das CSS-Attribut animation-name:none; . Schließlich wird #square durch einen eigenen Klon ersetzt, damit das Verhalten wiederholt werden kann, nachdem es einen Zyklus von hover und mouseout durchlaufen hat.

%Vor%

Zusätzlich

Diese Fiddle ist zwar leicht temperamentvoll, kann aber eine Teillösung für einen schönen Ease-Out-Effekt sein. Ich habe gerade das CSS mit einem: hover-Selektor modifiziert, um die linearen und easy-out-Attribute umzuschalten.

    
Todd 06.11.2016 02:00
quelle

Tags und Links