Verbesserungen bei Web Animationen in Chrome 50

Alex Danilo

Die Web Animations API, die erstmals in Chrome 36 zur Verfügung gestellt wurde, ermöglicht eine bequeme JavaScript-Steuerung von Animationen im Browser und wird auch in Gecko und WebKit implementiert.

In Chrome 50 werden Änderungen eingeführt, um die Interoperabilität mit anderen Browsern zu verbessern und die Compliance mit den Spezifikationen zu verbessern. Dies sind die folgenden Änderungen:

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

In Chrome 51 sind einige dieser Änderungen abgeschlossen:

  • Gestrichelte Namen als Schlüssel in Keyframes entfernen

Termine absagen

Die Benutzeroberfläche Animation enthält eine Methode zum Abbrechen einer Animation, auch cancel() genannt. In Chrome 50 wird das Auslösen des Ereignisses „Cancel“ implementiert, wenn die Methode gemäß den Spezifikationen aufgerufen wird. Wenn dieses initialisiert wurde, wird die Ereignisverarbeitung über das Attribut oncancel ausgelöst.

Unterstützung für Animation.id

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

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

Wenn Sie das Attribut id angeben, wird es für das zurückgegebene Animation-Objekt festgelegt. Dies kann bei der Fehlerbehebung in Ihren Inhalten hilfreich sein, wenn Sie viele Animation-Objekte verarbeiten müssen. Hier ein Beispiel dafür, wie Sie ein id für eine Animation angeben, die Sie instanziieren:

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

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

Die Methode pause() wird verwendet, um eine laufende Animation zu pausieren. Wenn Sie den Status der Animation mit dem Attribut playState prüfen, sollte dieser nach Aufruf der Methode paused() auf paused gesetzt werden. In Chrome-Versionen vor 50 würde das Attribut playState idle angeben, wenn die Animation noch nicht gestartet worden wäre. Jetzt zeigt sie den richtigen Status an, nämlich paused.

Gestrichelte Namen als Schlüssel in Keyframes entfernen

Zur weiteren Einhaltung der Spezifikationen und anderer Implementierungen sendet Chrome 50 eine Warnung an die Konsole, wenn gestrichelte Namen für Schlüssel in Keyframe-Animationen verwendet werden. Die richtigen Strings sind CamelCase-Namen gemäß dem Conversion-Algorithmus des CSS-Attributs zum IDL-Attribut.

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

In Chrome 51 werden gestrichelte Namen nicht mehr unterstützt. Daher ist jetzt ein guter Zeitpunkt, vorhandene Inhalte mit der korrekten Benennung gemäß der Spezifikation zu korrigieren.

Zusammenfassung

Diese Änderungen bringen die Implementierung von Webanimationen in Chrome näher an die Implementierungen anderer Browser heran und sind besser mit der Spezifikation konform. Dadurch wird das Erstellen von Webseiteninhalten für eine bessere Interoperabilität vereinfacht.