Melhorias nas animações da Web no Chrome 50

Alex Danilo

A API Web Animations, que foi lançada no Chrome 36, oferece um controle conveniente de JavaScript de animações no navegador e também está sendo implementada no Gecko e no WebKit.

O Chrome 50 apresenta mudanças para melhorar a interoperabilidade com outros navegadores e para ser mais compatível com a especificação. Essas mudanças são:

  • Cancelar eventos
  • Animation.id
  • Mudança de estado para o método pause()
  • Descontinuação de nomes com traços como chaves em frames-chave

No Chrome 51, algumas dessas mudanças foram finalizadas:

  • Remoção de nomes com traços como chaves em frames-chave

Cancelar eventos

A interface Animation inclui um método para cancelar uma animação, chamado cancel(). O Chrome 50 implementa o disparo do evento de cancelamento quando o método é chamado de acordo com a especificação, o que aciona o processamento de eventos pelo atributo oncancel se ele foi inicializado.

Suporte para Animation.id

Ao criar uma animação usando element.animate(), é possível transmitir várias propriedades. Confira um exemplo de animação de opacidade em um objeto:

element.animate([ { opacity: 1 }, { opacity: 0 } ], 500);

Ao especificar a propriedade id, ela será definida no objeto Animation retornado, o que pode ajudar no debug do conteúdo quando você tem muitos objetos Animation para lidar. Confira um exemplo de como especificar um id para uma animação que você instancia:

element.animate([{opacity: 1}, {opacity: 0}], {duration: 500, id: "foo"});

Mudança de estado para o método pause()

O método pause() é usado para pausar uma animação em andamento. Se você verificar o estado da animação usando o atributo playState, ele será definido como paused depois que o método paused() for chamado. Nas versões do Chrome anteriores à 50, o atributo playState indicava idle se a animação ainda não tivesse começado. No entanto, agora ele reflete o estado correto, que é paused.

Como remover nomes com traços como chaves em frames-chave

Para obedecer ainda mais à especificação e a outras implementações, o Chrome 50 envia um aviso para o console se nomes com traços forem usados para chaves em animações de keyframe. As strings corretas a serem usadas são nomes com letras maiúsculas e minúsculas, de acordo com a propriedade CSS para o atributo IDL algoritmo de conversão.

Por exemplo, a propriedade CSS margin-left exigiria que você transmitisse marginLeft como a chave.

O Chrome 51 removeu o suporte para nomes com traços. É hora de corrigir o conteúdo com a nomenclatura correta, conforme a especificação.

Resumo

Essas mudanças aproximam a implementação de animações da Web do Chrome de outras implementações de navegadores e tornam a especificação mais compatível, o que ajuda a simplificar a criação de conteúdo de páginas da Web para melhorar a interoperabilidade.