Ulepszenia animacji internetowych w Chrome 50

Alex Danilo

Interfejs Web Animations API, który został po raz pierwszy udostępniony w Chrome 36, umożliwia wygodne sterowanie animacjami w przeglądarce za pomocą JavaScriptu. Jest on też implementowany w Gecko i WebKit.

Chrome 50 wprowadza zmiany, które poprawiają współdziałanie z innymi przeglądarkami i zwiększają zgodność ze specyfikacją. Te zmiany to:

  • Anulowanie wydarzeń
  • Animation.id
  • Zmiana stanu metody pause()
  • wycofanie nazw z pochylonymi znakami jako kluczy w klatkach kluczowych;

W Chrome 51 niektóre z tych zmian zostały sfinalizowane:

  • Usuwanie nazw z myślnikami jako kluczy w klatkach kluczowych

Anulowanie wydarzeń

Interfejs Animation zawiera metodę anulowania animacji, która z ciekawym trafem nosi nazwę cancel(). Chrome 50 implementuje wywołanie zdarzenia anulowania, gdy metoda jest wywoływana zgodnie ze specyfikacją, co powoduje obsługę zdarzenia za pomocą atrybutu oncancel, jeśli został zainicjowany.

Obsługa Animation.id

Podczas tworzenia animacji za pomocą funkcji element.animate() możesz przekazywać różne właściwości. Oto przykład animacji krycia obiektu:

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

Określając właściwość id, możesz ją ustawić w zwracanym obiekcie Animation. Może to ułatwić debugowanie treści, gdy masz do czynienia z dużą liczbą obiektów Animation. Oto przykład określania id dla animacji, którą instancjujesz:

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

Zmiana stanu w przypadku metody pause()

Metoda pause() służy do wstrzymywania trwającej animacji. Jeśli stan animacji jest sprawdzany za pomocą atrybutu playState, po wywołaniu metody paused() powinien on być ustawiony na paused. W wersjach Chrome starszych niż 50 atrybut playState wskazywał wartość idle, jeśli animacja jeszcze się nie rozpoczęła, ale teraz odzwierciedla prawidłowy stan, czyli paused.

Usuwanie nazw z myślnikiem jako kluczy w klatkach kluczowych

Aby zapewnić zgodność ze specyfikacją i innymi implementacjami, Chrome 50 wysyła ostrzeżenie do konsoli, jeśli w animacjach kluczy klawiszy używa się nazw z myślnikiem. Prawidłowe ciągi znaków to nazwy w sposobach camelCase zgodnie z właściwością CSS do atrybutu IDL conversion algorithm.

Na przykład w przypadku właściwości CSS margin-left musisz podać klucz marginLeft.

W Chrome 51 całkowicie usuwamy obsługę nazw z łącznikami, więc teraz jest dobry moment na poprawienie istniejących treści i zastosowanie prawidłowej nazwy zgodnie ze specyfikacją.

Podsumowanie

Te zmiany sprawiają, że implementacja animacji internetowych w Chrome jest bardziej zbliżona do implementacji w innych przeglądarkach i bardziej zgodna ze specyfikacją, co ułatwia tworzenie treści na stronach internetowych i poprawia interoperacyjność.