Урок 14. Анимация: оживляем страницу
Заставим элементы двигаться сами — без единой строчки JavaScript.
Сначала transform
Это свойство двигает, вращает и масштабирует элемент, не сдвигая соседей:
transform: translateY(-10px);— поднять на 10 пикселей;transform: rotate(15deg);— повернуть на 15 градусов;transform: scale(1.2);— увеличить в 1,2 раза.
Вместе с :hover и transition это уже готовый эффект:
.karta:hover {
transform: translateY(-8px) scale(1.03);
}
Настоящая анимация — @keyframes
Если движение должно идти само, без мышки, сначала описывают «кадры»:
@keyframes plavanie {
0% { transform: translateY(0); }
50% { transform: translateY(-18px); }
100% { transform: translateY(0); }
}
Это как раскадровка мультфильма: в начале элемент на месте, в середине поднялся, в конце вернулся. А дальше анимацию включают элементу:
.shar {
animation: plavanie 3s ease-in-out infinite;
}
plavanie— имя, которое ты придумал в @keyframes;3s— сколько длится один круг;ease-in-out— плавный старт и финиш;infinite— повторять бесконечно.
Твой прогресс
Опыт и значки хранятся прямо в этом браузере — ни имени, ни почты для этого не нужно. Все треки и значки →
Частые вопросы
Как сделать анимацию на чистом CSS?
Описать кадры правилом @keyframes с именем, а потом задать элементу свойство animation, указав это имя, длительность и режим повтора. JavaScript для простых анимаций не нужен.
Чем transition отличается от animation?
transition делает плавным переход между двумя состояниями — например, при наведении мыши. animation проигрывает заданную последовательность кадров сама, без действий пользователя.