Verbesserungen bei Web Animationen in Chrome 50

Alex Danilo

Die Web Animations API, die erstmals in Chrome 36 eingeführt wurde, bietet eine praktische JavaScript-Steuerung von Animationen im Browser und wird auch in Gecko und WebKit implementiert.

In Chrome 50 wurden Änderungen eingeführt, um die Interoperabilität mit anderen Browsern zu verbessern und die Einhaltung der Spezifikation zu erhöhen. Dazu gehören:

  • Termine absagen
  • Animation.id
  • Statusänderung für die Methode pause()
  • Strichnamen als Schlüssel in Keyframes werden eingestellt

In Chrome 51 sind einige dieser Änderungen bereits abgeschlossen:

  • Entfernen von durchgestrichenen Namen als Schlüssel in Keyframes

Termine absagen

Die Benutzeroberfläche Animation enthält eine Methode zum Abbrechen einer Animation, die lustigerweise cancel() heißt. In Chrome 50 wird das Auslösen des Ereignisses „cancel“ implementiert, wenn die Methode gemäß der Spezifikation aufgerufen wird. Dadurch wird die Ereignisbehandlung über das Attribut oncancel ausgelöst, sofern es initialisiert wurde.

Unterstützung für Animation.id

Wenn Sie eine Animation mit element.animate() erstellen, können Sie eine Reihe von Eigenschaften übergeben. Hier ist ein Beispiel für die Animation der Deckkraft eines Objekts:

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

Wenn Sie die id-Eigenschaft angeben, wird sie auf dem zurückgegebenen Animation-Objekt festgelegt. Das kann beim Debuggen von Inhalten hilfreich sein, wenn Sie viele Animation-Objekte verarbeiten müssen. Hier ein Beispiel dafür, wie Sie einen id für eine von Ihnen instanziierte Animation angeben:

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

Statusänderung für die Methode „pause()“

Mit der Methode pause() wird eine laufende Animation pausiert. Wenn Sie den Status der Animation mit dem Attribut playState prüfen, sollte es nach dem Aufruf der Methode paused() auf paused gesetzt sein. In Chrome-Versionen vor 50 wurde für das Attribut playState der Wert idle angezeigt, wenn die Animation noch nicht gestartet war. Jetzt wird der korrekte Status paused angezeigt.

Entfernen von durchgestrichenen Namen als Schlüssel in Keyframes

Um die Spezifikation und andere Implementierungen weiter einzuhalten, sendet Chrome 50 eine Warnung an die Konsole, wenn für Schlüssel in ‑Animations-Keyframes gestrichelte Namen verwendet werden. Die richtigen Strings sind CamelCase-Namen gemäß dem Conversion-Algorithmus für die CSS-Eigenschaft zum IDL-Attribut.

Für die CSS-Eigenschaft margin-left müssen Sie beispielsweise marginLeft als Schlüssel übergeben.

In Chrome 51 wird die Unterstützung für Namen mit Bindestriche vollständig entfernt. Jetzt ist also ein guter Zeitpunkt, alle vorhandenen Inhalte gemäß der Spezifikation zu korrigieren.

Zusammenfassung

Durch diese Änderungen wird die Implementierung von Web-Animationen in Chrome der anderer Browser angenähert und die Einhaltung der Spezifikation verbessert. So wird die Erstellung von Webseiteninhalten für eine bessere Interoperabilität vereinfacht.