--- title: Element.animate() slug: Web/API/Element/animate translation_of: Web/API/Element/animate ---
{{APIRef('Web Animations')}} {{SeeCompatTable}}

Um {{domxref("Element")}} de interface do método animate() é um método de atalho o qual cria uma nova {{domxref("Animation")}}, e a aplica ao elemento, então executa a animação. Retorna a instância do objeto {{domxref("Animation")}} criado.

Elementos podem ter múltiplas animações aplicadas a eles. Você pode obter uma lista de animações que afetam um elemento chamando {{domxref("Element.getAnimations()")}}.

Syntax

var animation = element.animate(keyframes, options); 

Paramêtros

keyframes

An Object formatted to represent a set of keyframes.

opções
Ou um inteiro representando a duração da animação (em milisegundos), ou um objeto contendo uma ou mais propriedades de tempo:
id {{optional_inline}}
Um propriedade única á animate(): uma DOMString com a qual a animação é referenciada. 
{{Page("/en-US/docs/Web/API/Web_Animations_API/Animation_timing_properties", "Properties")}}

Opções Futuras

As seguintes opções atualmente não são embarcadas em nenhum lugar, porém serão adicionadas num futuro próximo.

composite {{optional_inline}}
Determina como os valores são combinados entre animações diferentes, separa animações que não especificam suas próprias operações de composição. Padrão para subtitituir.
iterationComposite {{optional_inline}}
Determines how values build from iteration to iteration in this animation. Can be set to accumulate or replace (see above). Defaults to replace.
spacing {{optional_inline}}
Determina como quadros-chaves sem deslocamento temporal devem ser distribuidos durante a duração da animação. Padrão para distribute.

 

Valor de retorno

Retorna uma {{domxref("Animation")}}.

Exemplo

Na demonstração Down the Rabbit Hole (with the Web Animation API), nós usamos o método conveniente animate() para imediamente criar e executar uma animação no elemento #tunnel para faze-lo fluir em direção superior, infinitamente.
Note o array de quadros-chave passado e também o bloco de opções de temporização.

document.getElementById("tunnel").animate([
  // keyframes
  { transform: 'translateY(0px)' },
  { transform: 'translateY(-300px)' }
], {
  // timing options
  duration: 1000,
  iterations: Infinity
});

Especificações

Specification Status Comment
{{SpecName('Web Animations', '#the-animatable-interface', 'animate()' )}} {{Spec2('Web Animations')}} Initial definition

Compatibildade entre Navegadores

{{CompatibilityTable}}

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support {{CompatChrome("36")}} {{CompatNo}} {{ CompatGeckoDesktop("48.0")}} {{CompatNo}} 23 {{CompatUnknown}}
id option {{CompatChrome(50.0)}} {{CompatNo}} {{ CompatGeckoDesktop("48.0")}} {{CompatNo}} 37 {{CompatUnknown}}
composite, iterationComposite, and spacing options {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}}
Feature Android Android Webview Chrome for Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatUnknown}} {{CompatChrome(39.0)}} {{CompatChrome(39.0)}} {{ CompatGeckoMobile("48.0")}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
id option {{CompatNo}} {{CompatChrome(50.0)}} {{CompatChrome(50.0)}} {{ CompatGeckoMobile("48.0")}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
composite, iterationComposite, and spacing options {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}}

Veja Também