Element.animate()

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2020.

* Some parts of this feature may have varying levels of support.

Experimental: Esta é uma tecnologia experimental
Verifique a tabela de compatibilidade entre Navegadores cuidadosamente antes de usar essa funcionalidade em produção.

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

Nota: Elementos podem ter múltiplas animações aplicadas a eles. Você pode obter uma lista de animações que afetam um elemento chamando 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

Um propriedade única á animate(): uma DOMString com a qual a animação é referenciada.

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

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.

  • Adiciona efeito de imposição e aditivação, onde cada iteração sucessiva é executada sobre a última. Por exemplo, com transform translateX(-200px) não sobreescreveria um valor anterior de rotate(20deg) mas resultaria em translateX(-200px) rotate(20deg).
  • accumulate é similar porém um pouco mais inteligente: blur(2) e blur(5) se tornam blur(7), não blur(2) blur(5).
  • replace sobreescreve o valor anterior com um novo.
iterationComposite Optional

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

Determina como quadros-chaves sem deslocamento temporal devem ser distribuidos durante a duração da animação. Padrão para distribute.

  • distribuir quadro-chaves de posição de forma que a diferença de deslocamento entre quadros-chaves subsequentes seja igual, distribuirá igualmente os quadros-chaves no decorrer do tempo de execução.
  • paced positions keyframes so that the distance between subsequent values of a specified paced property are equal, that is to say, keyframes are spaced further apart the greater the difference in their property values.

Valor de retorno

Retorna uma 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.

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

Especificações

Specification
Web Animations
# dom-animatable-animate

Compatibilidade com navegadores

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
animate
Implicit to/from keyframes are supported
options.composite parameter
options.id parameter
options.iterationComposite parameter
Experimental
options.pseudoElement parameter
options.rangeEnd parameter
Experimental
options.rangeStart parameter
Experimental
options.timeline parameter

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
No support
No support
Experimental. Expect behavior to change in the future.

Veja Também