Ich denke nicht, dass dies nur mit CSS-Animationen möglich ist. Ich gehe davon aus, dass CSS-Übergänge Ihren Anwendungsfall nicht erfüllen, weil Sie (zum Beispiel) zwei Animationen miteinander verketten, mehrere Stopps und Iterationen verwenden oder auf andere Weise die zusätzlichen Leistungsanimationen ausnutzen möchten, die Sie erhalten.
Ich habe keine Möglichkeit gefunden, eine CSS-Animation speziell beim Mouse-Out auszulösen, ohne JavaScript zum Anhängen von "Over" - und "Out" -Klassen zu verwenden. Obwohl Sie die Basis-CSS-Deklaration verwenden können, um eine Animation auszulösen, wenn der Hover endet, wird dieselbe Animation beim Laden der Seite ausgeführt. Mit den Klassen "over" und "out" können Sie die Definition in die Basisdeklaration (load) und die beiden Animationsauslöserdeklarationen aufteilen.
Das CSS für diese Lösung wäre:
.class {
/* base element declaration */
}
.class.out {
animation-name: out;
animation-duration:2s;
}
.class.over {
animation-name: in;
animation-duration:5s;
animation-iteration-count:infinite;
}
@keyframes in {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes out {
from {
transform: rotate(360deg);
}
to {
transform: rotate(0deg);
}
}
Und mit JavaScript (jQuery-Syntax), um die Klassen an die Ereignisse zu binden:
$(".class").hover(
function () {
$(this).removeClass('out').addClass('over');
},
function () {
$(this).removeClass('over').addClass('out');
}
);