--- title: Element.animate() slug: Web/API/Element/animate tags: - API - Animation - Element - Experimental - Method - Reference - web animation translation_of: Web/API/Element/animate ---
Метод animate()
интерфейса {{domxref("Element")}} это быстрый способ создания {{domxref("Animation")}}, которая сразу применяется к элементу, а затем проигрывает эту анимацию. Метод возвращает созданный экземпляр класса {{domxref("Animation")}}.
Элементы могут иметь несколько, прикреплённых к ним, анимаций. Вы можете получить список анимаций, которые влияют на элемент, вызвав {{domxref("Element.getAnimations()")}}.
var animation = element.animate(keyframes, options);
keyframes
Массив объектов ключевых кадров, либо объект ключевого кадра, свойства которого являются массивами значений для итерации. Смотрите Keyframe Formats для получения подробной информации.
options
id {{optional_inline}}
animate()
: DOMString
, с помощью которого можно ссылаться на анимацию.Следующие возможности в настоящее нигде не поддерживаются, но будут добавлены в ближайшем будущем .
composite {{optional_inline}}
replace
.
add
диктует аддитивный эффект, где каждая последующая итерация строится на последней. Пример с transform
, translateX(-200px)
не будут переопределять ранний вариант со значением rotate(20deg)
, поэтому результат будет translateX(-200px) rotate(20deg)
.accumulate
схоже, но немного умнее: blur(2)
и blur(5)
станет blur(7)
, а не blur(2) blur(5)
.replace
переписывает предыдущие значения на новые.iterationComposite {{optional_inline}}
accumulate
или replace
(смотрите выше). По умолчанию replace
.spacing {{optional_inline}}
distribute
.
distribute
позиционирует ключевые кадры так, чтобы разница между последующими смещениями ключевых кадров была равна, то есть без каких-либо смещений, ключевые кадры будут равномерно распределены по всему времени проигрыша анимации.paced
позиционирует ключевые кадры так, чтобы расстояние между последующими значениями заданного темпового свойства было равным, то есть, чем больше разница в значениях свойств ключевых кадров, тем на большем расстоянии они расположены друг от друга.
Возвращает {{domxref("Animation")}}.
В демо Down the Rabbit Hole (with the Web Animation API), мы используем удобный метод animate()
, чтобы сразу создать и проиграть анимацию на элементе #tunnel
, чтобы заставить его крутиться в падении, бесконечно. Обратите внимание на массив объектов, в котором переданы ключевые кадры, а также блок временных параметров.
document.getElementById("tunnel").animate([ // keyframes { transform: 'translate3D(0, 0, 0)' }, { transform: 'translate3D(0, -300px, 0)' } ], { // timing options duration: 1000, iterations: Infinity })
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('Web Animations', '#the-animatable-interface', 'animate()' )}} | {{Spec2('Web Animations')}} | Первоначальное определение |
{{Compat("api.Element.animate")}}