Je ne pense pas que cela soit réalisable en utilisant uniquement des animations CSS. Je suppose que les transitions CSS ne répondent pas à votre cas d'utilisation, car (par exemple) vous souhaitez enchaîner deux animations, utiliser plusieurs arrêts, itérations ou d'une autre manière exploiter les animations de puissance supplémentaires que vous accordez.
Je n'ai trouvé aucun moyen de déclencher une animation CSS spécifiquement au passage de la souris sans utiliser JavaScript pour attacher des classes «over» et «out». Bien que vous puissiez utiliser la déclaration CSS de base pour déclencher une animation lorsque le: hover se termine, cette même animation s'exécutera ensuite au chargement de la page. En utilisant les classes "over" et "out", vous pouvez diviser la définition en la déclaration de base (load) et les deux déclarations de déclenchement d'animation.
Le CSS pour cette solution serait:
.class {
}
.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);
}
}
Et en utilisant JavaScript (syntaxe jQuery) pour lier les classes aux événements:
$(".class").hover(
function () {
$(this).removeClass('out').addClass('over');
},
function () {
$(this).removeClass('over').addClass('out');
}
);