Анимации CSS: практика

Основы фронтенд разработки

Анимации CSS: практика

Продолжительность: 25 мин

Пришло время применить знания о transition и анимациях на практике. Давайте добавим несколько визуальных эффектов на нашу страницу о Санкт-Петербурге.

Hover-эффект на карточках фич

Первым делом добавим эффект масштабирования к карточкам с фичами города при наведении курсора мыши. Для этого будем использовать псевдокласс :hover, свойство transform с функцией scale и transition для плавности.

Хороший hover-эффект обычно состоит из двух частей: базовое состояние (где мы описываем переход) и состояние при наведении (где мы задаём конечные значения):

.feature { transition: transform 0.3s ease, box-shadow 0.3s ease; } .feature:hover { transform: scale(1.03); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); }
css

Обратите внимание: transition мы задаём в базовом состоянии, а не в :hover. Это важно — если задать transition только в :hover, плавным будет только переход «в» состояние при наведении, а «обратно» элемент вернётся мгновенно.

Добавление box-shadow при наведении создаёт эффект «приподнятости» карточки — вместе с масштабированием это выглядит аккуратно и современно.

Анимация появления карточек достопримечательностей

Вторым эффектом добавим плавное появление карточек с достопримечательностями при загрузке страницы. Здесь удобно использовать @keyframes.

Анимация fadeUp — одна из самых распространённых: элемент появляется снизу и одновременно проявляется из прозрачного:

@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
css

Применяем анимацию к карточкам. Обратите внимание на animation-fill-mode: both — оно гарантирует, что до старта анимации карточка будет невидимой (иначе она мелькнёт перед началом):

.attractions .card { animation: fadeUp 0.6s ease-out both; }
css

Последовательное появление

Если все карточки появляются одновременно — это выглядит неплохо. Но если они появляются одна за другой с небольшой задержкой — значительно интереснее. Для этого используем псевдокласс :nth-child и свойство animation-delay:

.attractions .card:nth-child(1) { animation-delay: 0s; } .attractions .card:nth-child(2) { animation-delay: 0.1s; } .attractions .card:nth-child(3) { animation-delay: 0.2s; } .attractions .card:nth-child(4) { animation-delay: 0.3s; } .attractions .card:nth-child(5) { animation-delay: 0.4s; }
css

Небольшие задержки (0.1–0.15 секунды между карточками) смотрятся лучше, чем большие — страница не кажется медленной, но эффект каскада при этом виден.

Дополнительно — эффект на кнопках навигации

Если на вашей странице есть кнопки или ссылки в навигации, к ним тоже можно добавить плавный hover-переход. Например, изменение цвета текста или фона:

nav a { transition: color 0.2s ease; } nav a:hover { color: #4a90e2; }
css

Ожидаемый результат

После выполнения задания страница должна:

  • плавно масштабировать карточки фич при наведении;
  • показывать тень при наведении, создавая эффект «приподнятости»;
  • анимировать появление карточек достопримечательностей при загрузке страницы;
  • появлять карточки последовательно, а не все сразу.

В следующем уроке поговорим об адаптивной вёрстке — как сделать так, чтобы страница одинаково хорошо выглядела на мобильных устройствах и на десктопе.

Это платный урок

Выберите тариф, чтобы открыть полный доступ к курсу

Самостоятельный

Учитесь в своём темпе. Всё, что нужно, чтобы освоить основы.

4 9007 900
Скидка 38%
  • Доступ ко всем урокам навсегда
  • Практические задания с автоматической проверкой кода в SourceCraft
  • Два проекта для портфолио
  • Первый модуль — бесплатно, без регистрации
  • Возврат денег в течение 14 дней
Популярный

С поддержкой

Личное код-ревью и прямая связь с автором, чтобы не застрять.

10 90013 900
Скидка 22%
  • Всё из тарифа «Самостоятельный»
  • Личное код-ревью ваших заданий от автора
  • Чат с автором в Telegram или MAX — задавайте любые вопросы
  • Одна персональная видеовстреча 30 минут

Премиум

Максимальное сопровождение: разбор кода вживую и еженедельные созвоны.

25 00029 000
Скидка 14%
  • Всё из тарифа «С поддержкой»
  • Живое код-ревью в реальном времени
  • Персональная видеовстреча 30 минут каждую неделю — 2 месяца (8 встреч)
  • Чат с автором в Telegram или MAX на всё время обучения
Безопасная оплата через ЮKassa · возврат в течение 14 дней

Комментарии

Войдите, чтобы оставить комментарий