Анімації роблять сайт динамічним для користувачів. Багато хто вважає, що для цього обов’язково потрібен JavaScript, але сучасний CSS дозволяє створювати складні ефекти без жодного рядка коду на JS. Використання CSS-анімацій пришвидшує завантаження сторінки та зменшує навантаження на браузер, оскільки вони апаратно прискорюються.
Основи CSS-анімацій
Щоб створити анімацію, потрібно визначити ключові кадри за допомогою @keyframes. Наприклад, зробимо плавне змінення кольору кнопки:
@keyframes changeColor {
0% { background-color: #3498db; }
100% { background-color: #2ecc71; }
}
button {
animation: changeColor 2s infinite alternate;
}
Цей код змушує кнопку змінювати колір кожні 2 секунди. Анімація працює безперервно завдяки infinite, а alternate змушує її змінювати напрямок на кожному повторі.
Анімація руху об’єктів
Один із найпоширеніших ефектів — плавне переміщення елемента. Наприклад, зробимо блок, який рухається вліво-вправо:
@keyframes move {
0% { transform: translateX(0); }
50% { transform: translateX(100px); }
100% { transform: translateX(0); }
}
.moving-block {
animation: move 3s infinite;
}
Цей ефект можна застосувати до різних елементів, щоб надати сторінці динамічності.
CSS transition: плавні зміни стилів
Якщо потрібно анімувати зміну властивостей без @keyframes, можна використати transition. Наприклад, зробимо ефект наведеного курсора на кнопку:
button {
background-color: #3498db;
transition: background-color 0.3s ease-in-out;
}
button:hover {
background-color: #2ecc71;
}
Цей підхід дозволяє зробити зміну кольору більш приємною без ривків.
Поєднання ефектів
Щоб отримати складніші ефекти, можна комбінувати @keyframes і transition. Наприклад, створимо ефект «пульсації»:
@keyframes pulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.1); }
}
.pulsing-button {
animation: pulse 1.5s infinite;
}
Таким чином, CSS-анімації дозволяють створювати динамічні та плавні ефекти без необхідності використання JavaScript.