@keyframes
Поддержка браузерами
12.0+ | 10.0+ | 16.0+ | 43.0+ | 30.0+ | 9.0+ |
Описание
CSS правило @keyframes позволяет разработчику контролировать промежуточные шаги в последовательности исполнения CSS анимации с помощью создания ключевых кадров (или путевых точек) вдоль последовательности анимации, которые достигаются в определенные моменты времени исполнения анимации. Это дает больше контроля над промежуточными этапами последовательности анимации, чем когда браузер обрабатывает все автоматически.
Для использования ключевых кадров, создается правило @keyframes с именем, которое затем используется в свойстве animation ( или animation-name) для добавления списка ключевых кадров в анимацию. Каждое правило @keyframes содержит список стилей для селекторов ключевых кадров, каждый из которых состоит из процента для анимации, при котором происходит ключевой кадр, и блока кода, содержащего информацию о стиле для этого ключевого кадра.
Перечислять ключевые кадры можно в любом порядке, они все равно будут обрабатываться в том порядке, в котором их указанный процент указывает когда они должны сработать.
Допустимые значения селекторов для ключевых кадров
Чтобы список ключевых кадров был корректным, он должен включать в себя минимум два значения: 0% ( или from) и 100% (или to), то есть начинать и заканчивать цикл анимации. Если оба эти значения не указаны, то все CSS правило считается недопустимым и не может быть использовано для анимации.
Если правило содержит свойства, которые не могут быть анимированы, они будут проигнорированы, но поддерживаемые свойства по-прежнему будут анимироваться.
Значения свойства
Значение | Описание |
---|---|
имя_анимации | Обязательный параметр. Определяет название анимации. |
селектор-ключевого-кадра | Обязательный параметр. Указывается в процентах от продолжительности анимации. Допустимые значения: 0-100% from (то же, что и 0%) to (то же, что и 100%) Замечание: Вы можете указывать множество селекторов ключевого кадра в одной анимации. |
css-стили | Обязательный параметр. Один или более допустимых свойств CSS стилей. |
Пример
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Пример</title> <style> div { width: 100px; height: 100px; background: red; position: relative; animation: mymove 4s infinite; } @keyframes mymove { 0% { top: 0px; left: 0px; background: red; } 25% { top: 0px; left: 530px; background: blue; } 50% { top: 100px; left: 530px; background: yellow; } 75% { top: 100px; left: 0px; background: green; } 100% { top: 0px; left: 0px; background: red; } } </style> </head> <body> <div></div> </body> </html>
Результат данного примера: