Улучшения веб-анимации в Chrome 50

Alex Danilo

API веб-анимации , впервые представленный в Chrome 36, обеспечивает удобное управление анимацией в браузере с помощью JavaScript, а также реализуется в Gecko и WebKit.

В Chrome 50 представлены изменения, улучшающие совместимость с другими браузерами и обеспечивающие большее соответствие спецификации. Эти изменения таковы:

  • Отменить мероприятия
  • Animation.id
  • Изменение состояния метода pause()
  • Прекращение использования пунктирных имен в качестве ключей в ключевых кадрах.

В Chrome 51 некоторые из этих изменений доработаны:

  • Удаление пунктирных имен в качестве ключей в ключевых кадрах

Отменить мероприятия

Интерфейс Animation включает в себя метод отмены анимации, который, как ни странно, называется cancel() . Chrome 50 реализует событие отмены при вызове метода в соответствии со спецификацией, что запускает обработку события через атрибут oncancel , если он был инициализирован.

Поддержка Animation.id

Когда вы создаете анимацию с помощью element.animate() вы можете передать ряд свойств. Например, вот пример анимации непрозрачности объекта:

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

Если указать свойство id , оно будет установлено для возвращаемого объекта Animation , что может помочь при отладке контента, когда вам нужно иметь дело с большим количеством объектов Animation . Вот пример того, как указать id для анимации, которую вы создаете:

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

Изменение состояния метода паузы()

Метод pause() используется для приостановки текущей анимации. Если вы проверяете состояние анимации с помощью атрибута playState , она должна быть установлена ​​на paused после вызова метода paused() . В версиях Chrome до 50 атрибут playState указывал бы на idle , если бы анимация еще не началась, однако теперь он отражает правильное состояние — paused .

Удаление пунктирных имен в качестве ключей в ключевых кадрах

Для дальнейшего соответствия спец. и других реализациях, Chrome 50 отправляет предупреждение на консоль, если для ключей в анимации ключевых кадров используются пунктирные имена. Правильными строками являются имена в верблюжьем регистре, соответствующие алгоритму преобразования атрибутов CSS в IDL.

Например, свойство CSS margin-left потребует от вас передачи поля marginLeft в качестве ключа.

В Chrome 51 полностью удалена поддержка пунктирных имен, поэтому сейчас самое время исправить любой существующий контент, присвоив ему правильные имена в соответствии со спецификацией.

Краткое содержание

Эти изменения приближают реализацию веб-анимации в Chrome к реализациям других браузеров и делают ее более совместимой со спецификацией, что помогает упростить создание контента веб-страниц и улучшить совместимость.

,

Alex Danilo

API веб-анимации , который впервые появился в Chrome 36, обеспечивает удобное управление анимацией в браузере с помощью JavaScript, а также реализуется в Gecko и WebKit.

В Chrome 50 представлены изменения, улучшающие совместимость с другими браузерами и обеспечивающие большее соответствие спецификации. Эти изменения таковы:

  • Отменить мероприятия
  • Animation.id
  • Изменение состояния метода pause()
  • Прекращение использования пунктирных имен в качестве ключей в ключевых кадрах.

В Chrome 51 некоторые из этих изменений доработаны:

  • Удаление пунктирных имен в качестве ключей в ключевых кадрах

Отменить мероприятия

Интерфейс Animation включает в себя метод отмены анимации, который, как ни странно, называется cancel() . Chrome 50 реализует событие отмены при вызове метода в соответствии со спецификацией, что запускает обработку события через атрибут oncancel , если он был инициализирован.

Поддержка Animation.id

Когда вы создаете анимацию с помощью element.animate() вы можете передать ряд свойств. Например, вот пример анимации непрозрачности объекта:

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

Если указать свойство id , оно будет установлено для возвращаемого объекта Animation , что может помочь при отладке контента, когда вам нужно иметь дело с большим количеством объектов Animation . Вот пример того, как указать id для анимации, которую вы создаете:

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

Изменение состояния метода паузы()

Метод pause() используется для приостановки текущей анимации. Если вы проверяете состояние анимации с помощью атрибута playState , она должна быть установлена ​​на paused после вызова метода paused() . В версиях Chrome до 50 атрибут playState указывал бы на idle , если бы анимация еще не началась, однако теперь он отражает правильное состояние — paused .

Удаление пунктирных имен в качестве ключей в ключевых кадрах

Для дальнейшего соответствия спец. и других реализациях, Chrome 50 отправляет предупреждение на консоль, если для ключей в анимации ключевых кадров используются пунктирные имена. Правильными строками являются имена в верблюжьем регистре в соответствии с алгоритмом преобразования атрибутов CSS в атрибуты IDL.

Например, свойство CSS margin-left потребует от вас передачи поля marginLeft в качестве ключа.

В Chrome 51 полностью удалена поддержка пунктирных имен, поэтому сейчас самое время исправить любой существующий контент, присвоив ему правильные имена в соответствии со спецификацией.

Краткое содержание

Эти изменения приближают реализацию веб-анимации в Chrome к реализациям других браузеров и делают ее более совместимой со спецификацией, что помогает упростить создание контента веб-страниц и улучшить совместимость.