Não acho que isso seja possível usando apenas animações CSS. Estou assumindo que as transições CSS não atendem ao seu caso de uso, porque (por exemplo) você deseja encadear duas animações, usar várias paradas, iterações ou de alguma outra forma explorar as animações de poder adicionais concedidas a você.
Não encontrei nenhuma maneira de acionar uma animação CSS especificamente na saída do mouse sem usar JavaScript para anexar as classes "over" e "out". Embora você possa usar a declaração CSS básica para acionar uma animação quando o: hover terminar, a mesma animação será executada no carregamento da página. Usando as classes "over" e "out", você pode dividir a definição na declaração de base (load) e nas duas declarações de trigger de animação.
O CSS para esta solução seria:
.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);
}
}
E usando JavaScript (sintaxe jQuery) para vincular as classes aos eventos:
$(".class").hover(
function () {
$(this).removeClass('out').addClass('over');
},
function () {
$(this).removeClass('over').addClass('out');
}
);