will-change

Avatar of Robin Rendle
Robin Rendle am

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

Die will-change Eigenschaft in CSS optimiert Animationen, indem sie dem Browser mitteilt, welche Eigenschaften und Elemente gerade manipuliert werden, was potenziell die Leistung dieses bestimmten Vorgangs erhöht.

Syntax

will-change: <animateable-feature> = scroll-position | contents | <custom-ident>
  • Anfangswert: auto
  • Gilt für: alle Elemente
  • Vererbt: nein
  • Prozentwerte: n/v
  • Berechneter Wert: spezifischer Wert
  • Animationstyp: nicht animierbar

Werte

Diese Eigenschaft hat vier Werte

  • auto: Es werden Standard-Optimierungen des Browsers angewendet.
  • scroll-position: Zeigt an, dass die Scroll-Position des Elements in naher Zukunft animiert wird, sodass der Browser Inhalte vorbereitet, die im Scrollfenster eines Elements nicht sichtbar sind.
  • contents: Der Inhalt eines Elements wird voraussichtlich geändert, daher speichert der Browser den Inhalt dieses Elements nicht im Cache.
  • <custom-ident>: Eine benutzerdefinierte Eigenschaft wie transform oder opacity, auf die will-change angewendet werden soll.

Verwendung der Eigenschaft

Wir können den Browser informieren, dass eine Änderung an der Eigenschaft transform bevorsteht, wie folgt:

.element {
  will-change: transform;
}

Oder, wenn wir mehrere Werte deklarieren möchten, können wir eine durch Kommas getrennte Liste verwenden, wie z. B.:

.element {
  will-change: transform, opacity;
}

Es ist wichtig, die Eigenschaft will-change nicht zu überstrapazieren, da sie die Seitenleistung tatsächlich verringern kann (beachten Sie, dass es aus gutem Grund keinen Wert all für diese Eigenschaft gibt). Daher empfiehlt MDN, die Eigenschaft als letzte Option für bestehende Leistungsprobleme zu verwenden, anstatt für solche, die Sie antizipieren.

Weitere Ressourcen

Browser-Unterstützung

Diese Browser-Support-Daten stammen von Caniuse, wo weitere Details verfügbar sind. Eine Zahl gibt an, dass der Browser die Funktion ab dieser Version unterstützt.

Desktop

ChromeFirefoxIEEdgeSafari
3636Nein799.1

Mobil / Tablet

Android ChromeAndroid FirefoxAndroidiOS Safari
1271271279.3

Spezifikation

will-change ist im Entwurf der Spezifikation CSS Will Change Module Level 1 definiert, der sich derzeit im Editor’s Draft-Status befindet. Das bedeutet, dass die hier und in der Spezifikation bereitgestellten Informationen geändert werden könnten, bevor sie eine Kandidatenempfehlung erreichen.