--- 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 для получения подробной информации.
optionsid {{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
})
{{Compat}}