Я не думаю, що цього можна досягти, використовуючи лише анімацію CSS. Я припускаю, що переходи CSS не відповідають вашому випадку використання, оскільки (наприклад) ви хочете об'єднати дві анімації разом, використовувати кілька зупинок, ітерацій або якимось іншим чином використовувати додаткові потужності, які вам дають анімації.
Я не знайшов жодного способу активувати CSS-анімацію спеціально при наведенні миші без використання JavaScript для приєднання класів "over" та "out". Хоча ви можете використовувати базову декларацію CSS, що запускає анімацію, коли закінчується: hover, ця сама анімація буде запускатися при завантаженні сторінки. За допомогою класів "over" та "out" ви можете розділити визначення на базову (завантажувальну) декларацію та дві декларації тригера анімації.
CSS для цього рішення буде таким:
.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);
}
}
І використання JavaScript (синтаксис jQuery) для прив’язки класів до подій:
$(".class").hover(
function () {
$(this).removeClass('out').addClass('over');
},
function () {
$(this).removeClass('over').addClass('out');
}
);