Recursos de animações da Web

A API Web Animations fornece primitivas poderosas para descrever animações imperativas de JavaScript. Mas o que isso significa? Saiba mais sobre os recursos disponíveis para você, incluindo demonstrações e codelabs do Google.

Contexto

Em essência, a API fornece o método Element.animate(). Confira um exemplo que anima a cor de fundo de vermelho para verde:

var player = document.body.animate(
    [{'background': 'red'}, {'background': 'green'}], 1000);

Esse método é aceito em todos os navegadores modernos, com uma ótima substituição de polyfill (mais informações mais adiante). O suporte nativo para esse método e o objeto do player a ele foi disponibilizado como parte do Chrome 39. Ela também está disponível de forma nativa no Opera e está em desenvolvimento ativo para Firefox. Essa é uma primitiva poderosa que merece um lugar na sua caixa de ferramentas.

Codelabs

Um número crescente de codelabs está disponível para a API Web Animations. Esses são guias independentes que demonstram diferentes conceitos na API. Na maioria desses codelabs, você vai usar conteúdo estático e aprimorar com efeitos de animação.

Esses codelabs e os links ou recursos relacionados são o melhor lugar para começar se você quer entender as novas primitivas disponíveis nas animações da Web. Para ter uma ideia do que você pode criar, confira este efeito de revelação inspirado no Android

Prévia do resultado do codelab

Então, se você está começando, não procure mais!

Demonstrações

Se você está em busca de inspiração, confira as demonstrações de animações da Web (link em inglês) inspiradas no Material Design, com fonte hospedada no GitHub (link em inglês). Eles demonstram uma variedade de efeitos incríveis, e você pode ver o código-fonte de cada demonstração inline.

As demonstrações incluem uma galáxia colorida girando, a Terra girando ou até mesmo uma variedade de efeitos em um elemento simples.

Polyfill

Para garantir um bom suporte em todos os navegadores modernos, use uma biblioteca de polyfill. A API Web Animations tem um polyfill disponível agora que a leva a todos os navegadores modernos, incluindo o Internet Explorer, o Firefox e o Safari.

Se você estiver se aventureiro, poderá usar o polyfill web-animations-next, que também inclui recursos que ainda não foram finalizados, como os construtores GroupEffect e SequenceEffect de composição. Para comparar os dois polyfills, acesse a página inicial.

Para usar qualquer um dos polyfills no código, você tem algumas opções.

  1. Usar uma CDN, como cdnjs, jsDelivr ou segmentar uma versão específica em rawgit.com

  2. Instalar pelo NPM ou Bower

     $ npm install web-animations-js
     $ bower install web-animations-js
     ```
    

Em todos os casos, basta incluir o polyfill em uma tag de script antes de qualquer outro código.

<script src="https://cdn.jsdelivr.net/web-animations/latest/web-animations.min.js"></script>
<script>
    document.body.animate([
    {'background': 'red'},
    {'background': 'green'}
    ], 1000);
</script>

Outros recursos

Se você quiser ler uma introdução mais técnica, confira a especificação do W3C.

Dan Wilson também escreveu um excelente conjunto de postagens sobre animações na Web, incluindo como usá-lo com a nova propriedade motion-path do CSS (link em inglês). Para conferir alguns exemplos que usam motion-path, consulte o documento de Eric Willigers.