Additive Animationen in CSS

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Daniel C. Wilson erklärt, wie bei CSS @keyframe-Animationen, wenn mehrere davon auf ein Element angewendet werden, beide funktionieren. Wenn jedoch Eigenschaften wiederholt werden, funktioniert nur die letzte. Sie überschreiben sich gegenseitig. Ich habe gesehen, wie diese Einschränkung durch Anwendung von Keyframes auf verschachtelte Elemente überwunden wurde, sodass Sie sich nicht mit diesem Kampf auseinandersetzen müssen.

Aber die Web Animation API (WAAPI) in JavaScript bietet eine Möglichkeit für additive Animationen. Es ist eine Frage des Hinzufügens von composite: "add" zu den Optionen. Zum Beispiel

Dasselbe gilt für das Verschieben eines Elements um 20px + 30px mit linkem Rand (nicht der performanteste Weg, ein Objekt zu bewegen, aber es demonstriert die Längenverwendung)… wenn beide Animationen gleichzeitig, mit derselben Dauer und in derselben Richtung ausgeführt werden, wird das Endergebnis eine Bewegung von 50px sein.

Cool. Das ist schön für JavaScript-Animationen, aber was ist mit CSS? Werden wir es jemals bekommen? Vielleicht. Selbst jetzt können Sie additive Animationen mit nur einer Zeile JavaScript auf Ihre vorhandenen CSS-Animationen anwenden

el.getAnimations().forEach(animation => {
  animation.effect.composite = 'add';
});

Erinnert mich irgendwie an unbestimmte Checkboxen. Sie existieren, aber es gibt keine Möglichkeit, sie in HTML oder CSS auszudrücken – Sie müssen sie über JavaScript in diesen Zustand versetzen.

Direkter Link →