Je ne pense pas que cela soit réalisable en utilisant uniquement des animations CSS. Je suppose que les transitions CSS ne pas remplissez votre cas d'utilisation, parce que (par exemple) vous voulez enchaîner deux animations, utiliser des arrêts multiples, des itérations, ou exploiter d'une autre manière la puissance supplémentaire que les animations vous accordent.
Je n'ai pas trouvé de moyen de déclencher une animation CSS spécifiquement à la sortie de la souris sans utiliser JavaScript pour attacher les classes "over" et "out". Bien que vous puissiez utiliser la déclaration CSS de base pour déclencher une animation à la fin du :hover, 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 une déclaration de base (load) et deux déclarations de déclenchement d'animation.
Le CSS de cette solution serait :
.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);
}
}
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');
}
);