KeyframeEffect
Базовая поддержка Широко доступна *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с марта 2020 года.
* Некоторые части этой функции могут иметь различный уровень поддержки.
Интерфейс KeyframeEffect API веб-анимаций позволяет создавать наборы анимируемых свойств и значений, называемых ключевыми кадрами. Затем их можно воспроизвести, используя конструктор Animation().
Конструктор
KeyframeEffect()-
Возвращает новый экземпляр объекта
KeyframeEffect, а также позволяет клонировать существующий экземпляр объекта эффекта ключевых кадров.
Свойства экземпляра
KeyframeEffect.target-
Получает и устанавливает элемент или исходный элемент псевдоэлемента, анимируемый этим объектом. Может быть
nullдля анимаций, которые не нацелены на конкретный элемент или псевдоэлемент. KeyframeEffect.pseudoElement-
Получает и устанавливает селектор псевдоэлемента, анимируемого этим объектом. Может быть
nullдля анимаций, которые не нацелены на псевдоэлемент. KeyframeEffect.iterationComposite-
Получает и устанавливает операцию комбинирования итераций для определения изменений значений свойств этого эффекта ключевых кадров.
KeyframeEffect.composite-
Получает и устанавливает свойство операции комбинирования для определения изменений значений свойств между этим и другими эффектами ключевых кадров.
Методы экземпляра
Этот интерфейс наследует некоторые методы от своего родителя, AnimationEffect.
AnimationEffect.getComputedTiming()-
Возвращает рассчитанные текущие значения тайминга для этого эффекта ключевых кадров.
KeyframeEffect.getKeyframes()-
Возвращает рассчитанные ключевые кадры, составляющие этот эффект, вместе с их рассчитанными смещениями ключевых кадров.
AnimationEffect.getTiming()-
Возвращает объект, связанный с анимацией, содержащий все значения тайминга анимации.
KeyframeEffect.setKeyframes()-
Заменяет набор ключевых кадров, составляющих этот эффект.
AnimationEffect.updateTiming()-
Обновляет указанные свойства тайминга.
Примеры
В следующем примере конструктор KeyframeEffect используется для создания набора ключевых кадров, которые определяют, как эмодзи рофл должен кататься по полу:
const emoji = document.querySelector("div"); // element to animate
const rollingKeyframes = new KeyframeEffect(
emoji,
[
{ transform: "translateX(0) rotate(0)" }, // keyframe
{ transform: "translateX(200px) rotate(1.3turn)" }, // keyframe
],
{
// keyframe options
duration: 2000,
direction: "alternate",
easing: "ease-in-out",
iterations: "Infinity",
},
);
const rollingAnimation = new Animation(rollingKeyframes, document.timeline);
// play rofl animation
rollingAnimation.play();
<div>🤣</div>
Спецификации
| Спецификация |
|---|
| Web Animations # the-keyframeeffect-interface |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari в iOS | Samsung Internet | WebView Android | |
KeyframeEffect |
75 | 79 | 63 | 62 | 13.1 | 75 | 63 | 54 | 13.4 | 11.0 | 75 |
KeyframeEffect |
75 | 79 | 63 | 62 | 13.1 | 75 | 63 | 54 | 13.4 | 11.0 | 75 |
composite |
84 | 84 | 80 | 71 | 16 | 84 | 80 | 60 | 16 | 14.0 | 84 |
getKeyframes |
84 | 84 | 63 | 71 | 13.1 | 84 | 63 | 60 | 13.4 | 14.0 | 84 |
iterationComposite |
Нет | Нет | 80 | Нет | 16.4 | Нет | 80 | Нет | 16.4 | Нет | Нет |
pseudoElement |
84 | 84 | 75 | 71 | 14 | 84 | 79 | 60 | 14 | 14.0 | 84 |
setKeyframes |
84 | 84 | 63 | 71 | 13.1 | 84 | 63 | 60 | 13.4 | 14.0 | 84 |
target |
75 | 79 | 63 | 62 | 13.1 | 75 | 63 | 54 | 13.4 | 11.0 | 75 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect