@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>
Результат данного примера: