логотип PurpleSchool
логотип PurpleSchool

CSS animation-play-state; Полное руководство по управлению анимациями

Автор

Дмитрий Нечаев

Свойство animation-play-state в CSS позволяет управлять воспроизведением анимаций, ставить их на паузу и запускать снова. Это полезно для создания интерактивных веб-страниц, где пользователи могут управлять анимациями. В этой статье мы подробно рассмотрим, как использовать animation-play-state, и приведем примеры для лучшего понимания.

Основы animation-play-state

Свойство animation-play-state управляет состоянием воспроизведения анимации. Оно может быть установлено в одно из двух значений:

  • running
    • Анимация воспроизводится (по умолчанию).
  • paused
    • Анимация приостановлена.

Синтаксис animation-play-state

Синтаксис использования свойства animation-play-state простой:

.element {
  animation-play-state: running | paused;
}

Пример использования

Рассмотрим простой пример, где анимация перемещения элемента может быть приостановлена:

@keyframes move {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(100px);
  }
}

.move-element {
  animation-name: move;
  animation-duration: 4s;
  animation-play-state: running; /* Анимация воспроизводится */
}

.move-element.paused {
  animation-play-state: paused; /* Анимация приостановлена */
}

В этом примере элемент .move-element будет перемещаться слева направо, но если к нему будет применен класс .paused, анимация приостановится.

Управление анимацией с помощью JavaScript

Свойство animation-play-state часто используется вместе с JavaScript для динамического управления анимациями на веб-странице.

Пример использования JavaScript для управления анимацией

Рассмотрим пример, где анимация может быть приостановлена и возобновлена с помощью кнопок:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Управление анимацией</title>
  <style>
    @keyframes spin {
      from {
        transform: rotate(0deg);
      }
      to {
        transform: rotate(360deg);
      }
    }

    .spin-element {
      width: 100px;
      height: 100px;
      background-color: red;
      animation-name: spin;
      animation-duration: 4s;
      animation-iteration-count: infinite;
      animation-play-state: running;
    }

    .spin-element.paused {
      animation-play-state: paused;
    }
  </style>
</head>
<body>
  <div class="spin-element" id="spinElement"></div>
  <button onclick="pauseAnimation()">Пауза</button>
  <button onclick="resumeAnimation()">Запуск</button>

  <script>
    function pauseAnimation() {
      document.getElementById('spinElement').classList.add('paused');
    }

    function resumeAnimation() {
      document.getElementById('spinElement').classList.remove('paused');
    }
  </script>
</body>
</html>

В этом примере анимация элемента с ID spinElement может быть приостановлена и возобновлена нажатием кнопок.

Применение в реальных проектах

Свойство animation-play-state полезно для создания интерактивных элементов на веб-страницах, таких как игровые элементы, обучающие материалы или интерактивные презентации.

Пример с интерактивной кнопкой

Рассмотрим пример, где анимация кнопки приостанавливается при наведении курсора:

@keyframes bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-20px);
  }
}

.bounce-button {
  display: inline-block;
  padding: 10px 20px;
  background-color: blue;
  color: white;
  animation-name: bounce;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-play-state: running;
}

.bounce-button:hover {
  animation-play-state: paused; /* Приостанавливаем анимацию при наведении */
}

Советы и рекомендации

  1. Использование в комбинации с JavaScript. Свойство animation-play-state особенно полезно в сочетании с JavaScript для создания интерактивных веб-страниц.

  2. Тестирование в разных браузерах. Убедитесь, что ваши анимации корректно работают в различных браузерах, так как поддержка CSS-анимаций может отличаться.

  3. Подбор подходящего состояния. Определяйте логические моменты для приостановки и запуска анимаций, чтобы улучшить взаимодействие с пользователями.

Заключение

Свойство animation-play-state в CSS является мощным инструментом для управления состоянием воспроизведения анимаций. Используя это свойство, вы можете ставить анимации на паузу и запускать их снова, создавая более интерактивные и динамичные веб-страницы. Следуя приведенным рекомендациям и примерам, вы сможете эффективно использовать animation-play-state в своих проектах, улучшая взаимодействие с пользователями и делая ваши веб-страницы более интересными и интерактивными.

Стрелочка влевоCSS animation-timing-function; Полное руководство по управлению проигрыванием анимацийCSS animation-name; Полное руководство по заданию имени анимацииСтрелочка вправо

Постройте личный план изучения Css до уровня Middle — бесплатно!

Css — часть карты развития Frontend

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Бесплатные лекции

Все гайды по Css

Полное руководство по свойству transform-style в CSSПолное руководство по использованию свойства will-change в CSSУправление точкой опоры трансформаций в CSS с помощью transform-originИспользование функций CSS-трансформации; Полное руководствоПолное руководство по свойству transform-box в CSSУправление элементами с помощью свойства transform в CSSПолное руководство по свойству perspective-origin в CSSПолное руководство по свойству perspective в CSSПолное руководство по свойству backface-visibility в CSS
Универсальный селектор в CSS. Полное руководство с примерамиСелектор по тегу в CSS. Полное руководство с примерамиПеречисление селекторов в CSS. Полное руководство с примерамиСелектор потомка в CSS. Полное руководство с примерамиСелектор по идентификатору в CSS; Полное руководство с примерамиКомбинированные селекторы в CSS; Полное руководство с примерамиСелектор по классу в CSS; Полное руководство с примерамиСелектор по атрибуту в CSS; Полное руководство с примерами
Псевдокласс selection. Полное руководство с примерамиПсевдоэлементы в CSS. Полное руководство с примерамиПсевдоэлемент placeholder в CSS. Полное руководство с примерамиПсевдоэлемент marker в CSS. Полное руководство с примерамиПсевдоэлемент first-line в CSS. Полное руководство с примерамиПсевдоэлемент first-letter в CSS. Полное руководство с примерамиСвойство content в CSS. Полное руководство с примерамиПсевдоэлемент before в CSS. Полное руководство с примерамиПсевдоэлемент backdrop в CSS. Полное руководство с примерамиПсевдоэлемент after в CSS. Полное руководство с примерами
Псевдокласс where в CSS. Полное руководство с примерамиПсевдоклассы группы type в CSS. Полное руководство с примерамиПсевдокласс visited в CSS. Полное руководство с примерамиПсевдокласс target в CSS. Полное руководство с примерамиПсевдокласс root в CSS. Полное руководство с примерамиПсевдокласс required в CSS. Полное руководство с примерамиПсевдоклассы в CSS. Полное руководство с примерамиПсевдокласс placeholder-shown в CSS. Полное руководство с примерамиПсевдокласс optional в CSS. Полное руководство с примерамиПсевдокласс not в CSS. Полное руководство с примерамиПсевдокласс link в CSS. Полное руководство с примерамиПсевдокласс lang в CSS. Полное руководство с примерамиПсевдокласс is в CSS. Полное руководство с примерамиПсевдоклассы invalid и valid в CSS. Полное руководство с примерамиПсевдокласс indeterminate в CSS. Полное руководство с примерамиПсевдоклассы in-range и out-of-range. Полное руководство с примерамиПсевдокласс hover в CSS. Полное руководство с примерамиПсевдокласс has в CSS. Полное руководство с примерамиПсевдокласс focus-within в CSS. Полное руководство с примерамиПсевдокласс focus в CSS. Полное руководство с примерамиПсевдокласс focus-visible в CSS. Полное руководство с примерамиПсевдокласс empty в CSS. Полное руководство с примерамиПсевдоклассы disabled и enabled в CSS. Полное руководство с примерамиПсевдокласс default в CSS. Полное руководство с примерамиПсевдоклассы группы child в CSS. Полное руководство с примерамиПсевдокласс checked в CSS. Полное руководство с примерамиПсевдокласс active в CSS. Полное руководство с примерами
Функция var в CSS. Полное руководство с примерамиФункция url в CSS. Полное руководство с примерамиФункция repeating-radial-gradient в CSS. Полное руководство с примерамиФункция repeating-linear-gradient в CSS. Полное руководство с примерамиФункция repeating-conic-gradient в CSS. Полное руководство с примерамиФункция radial-gradient в CSS. Полное руководство с примерамиФункция min в CSS. Полное руководство с примерамиФункция max в CSS. Полное руководство с примерамиФункция linear-gradient в CSS. Полное руководство с примерамиФункция image-set в CSS. Полное руководство с примерамиФункции фильтров в CSS. Полное руководство с примерамиФункция conic-gradient в CSS. Полное руководство с примерамиФункция clamp в CSS. Полное руководство с примерамиФункция calc в CSS. Полное руководство с примерамиФункция attr в CSS. Полное руководство с примерами
Вендорные префиксы в CSS. Полное руководство с примерамиКонтекст наложения в CSS. Полное руководство с примерамиСпецифичность в CSS. Полное руководство с примерамиПодход «Pixel Perfect» в верстке сайтов. Полное руководство с примерамиНаследование в CSS. Полное руководство с примерамиCSS-правило. Полное руководство с примерамиКомментарии в CSS. Полное руководство с примерамиПринцип каскада в CSS. Полное руководство с примерамиБлочная модель в CSS. Полное руководство с примерамиСвойство all в CSS. Полное руководство с примерамиПодключение стилей к HTML. Полное руководство с примерами
Полное руководство по свойству will-change в CSSПолное руководство по transition-timing-function в CSSОсновы использования transition-property в CSS; управление плавными переходамиCSS transition-duration; Полное руководство по управлению продолжительностью переходовCSS transition-delay; Полное руководство по управлению задержкой переходовCSS transition; Полное руководство по созданию плавных переходовCSS @keyframes; Полное руководство по созданию анимацийCSS animation-timing-function; Полное руководство по управлению проигрыванием анимацийCSS animation-play-state; Полное руководство по управлению анимациямиCSS animation-name; Полное руководство по заданию имени анимацииCSS animation-iteration-count; Полное руководство по управлению количеством повторений анимацииCSS animation-fill-mode; Полное руководство по управлению состоянием элементов после анимацииCSS animation-duration; Полное руководство по управлению длительностью анимацииCSS animation-direction; Полное руководство по управлению направлением анимацииCSS animation-delay; Полное руководство с примерамиCSS-анимации; Полное руководство с примерами
Открыть базу знаний

Лучшие курсы по теме

изображение курса

HTML и CSS

Антон Ларичев
иконка часов6 бесплатных уроков
иконка звёздочки рейтинга4.8
Frontend
Mobile
изображение курса

TypeScript с нуля

Антон Ларичев
иконка часов6 бесплатных уроков
иконка звёздочки рейтинга4.8
Backend
Frontend
Mobile
изображение курса

Next.js - с нуля

Антон Ларичев
иконка часов8 бесплатных уроков
иконка звёздочки рейтинга4.7
Frontend