Анимация

Преимущества перед transition

Создание анимации:

Ключевой кадр:

@keyframes changeWidth {       
/*  имя должно быть описательным */
    from {
        /* Здесь перечисляются CSS-свойства */
        width: 0;
    }
    to {
        /* Здесь перечисляются CSS-свойства */
        width: 100%;
    }
}   

Применение анимации:

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes fadeOut {
    from { opacity: 1; }
    to { opacity: 0; }
}

.className:hover {
    animation-name: changeWidth, fadeIn;
    animation-duration: 1s;
}

.className:active {
    animation-name: fadeOut;
    animation-duration: .5s;
}
            

Функция распределения скорости анимации по времени

animation-timing-function: ease-out;
animation-timing-function: cubic-bezier(1, .03, 1, .115);

Задрежка старта анимации

animation-delay: 1s;

Повторение анимации n-раз после события

animation-iteration-count: 10; // повторим 10 раз 
// повторим бесконечно - «пульсирующий» эффект
animation-iteration-count: infinite;  

Чтобы анимация при нечетных проигрываниях шла в прямом, а при нечетных — в обратном порядке

animation-direction: alternate;

!!! используйте четное число animation-iteration-count для возвращения в исходное состояние !!!

Сохранить элементу тот вид, который у него будет по завершении анимации

animation-fill-mode: forwards;

Краткая запись свойства animation

back