Saya tidak berpikir ini dapat dicapai hanya dengan menggunakan animasi CSS. Saya berasumsi bahwa transisi CSS tidak memenuhi kasus penggunaan Anda, karena (misalnya) Anda ingin merangkai dua animasi bersama-sama, menggunakan beberapa penghentian, iterasi, atau dengan cara lain memanfaatkan animasi daya tambahan yang diberikan kepada Anda.
Saya tidak menemukan cara untuk memicu animasi CSS khususnya saat mouse-out tanpa menggunakan JavaScript untuk melampirkan kelas "over" dan "out". Meskipun Anda dapat menggunakan deklarasi CSS dasar yang memicu animasi saat: hover berakhir, animasi yang sama kemudian akan berjalan saat pemuatan halaman. Dengan menggunakan kelas "over" dan "out", Anda dapat membagi definisi menjadi deklarasi dasar (load) dan dua deklarasi pemicu animasi.
CSS untuk solusi ini adalah:
.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);
}
}
Dan menggunakan JavaScript (sintaks jQuery) untuk mengikat kelas ke acara:
$(".class").hover(
function () {
$(this).removeClass('out').addClass('over');
},
function () {
$(this).removeClass('over').addClass('out');
}
);