0Pricing
CSS Academy · Lektion

will-change und Layer-Promotion

Geben Sie dem Browser mit will-change einen Hinweis, Elemente für flüssigere Animationen auf GPU-Layer zu verschieben.

will-change und Layer-Promotion ist eine kostenlose CSS Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des CSS Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der CSS Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist will-change?

will-change weist den Browser darauf hin, dass ein Element animiert wird. Dadurch kann er Optimierungen im Voraus vorbereiten, beispielsweise das Element vor Beginn der Animation auf eine eigene GPU-Compositor-Ebene zu verschieben.

Syntax

Geben Sie an, welche Eigenschaft geändert wird: will-change: transform, will-change: opacity, will-change: transform, opacity. Verwenden Sie will-change: auto, um die Hinweise nach dem Ende der Animation zu entfernen.

Wann wird es verwendet?

Wenden Sie will-change nur auf Elemente an, die tatsächlich animiert werden, und nur für die Dauer der Animation. Es mit JavaScript (über eine Klasse) hinzuzufügen und zu entfernen, ist effizienter, als es dauerhaft auf statischen Elementen zu belassen.

Kosten der Layer-Promotion

Jede auf eine eigene Ebene verschobene Ebene beansprucht GPU-Speicher. Wenn viele Elemente gleichzeitig auf eigene Ebenen verschoben werden, entsteht Speicherdruck, der die Leistung beeinträchtigen kann – insbesondere auf Mobilgeräten mit begrenztem GPU-RAM. Führen Sie Layer-Promotion sparsam und gezielt durch.

Pauschale Anwendung vermeiden

Wenden Sie will-change niemals auf * oder auf eine große Anzahl von Elementen an. Wenn zu viele Ebenen erstellt werden, übersteigen die Kosten der Optimierung ihren Nutzen. Erstellen Sie zuerst ein Profil und fügen Sie will-change nur dort hinzu, wo ein konkretes Ruckelproblem bestätigt wurde.

will-change gegenüber dem translateZ-Trick

Vor will-change verwendeten Entwickler transform: translateZ(0) oder translate3d(0,0,0), um eine GPU-Promotion zu erzwingen. will-change ist der korrekte semantische Ansatz. Der translateZ-Trick funktioniert weiterhin, ist jedoch ein Implementierungsdetail und bringt nicht die eigentliche Absicht zum Ausdruck.

Nebenwirkung des Stacking Contexts

Auf eigene Ebenen verschobene Elemente erzeugen neue Stacking Contexts. Dies beeinflusst das Verhalten von z-index: Die untergeordneten Elemente eines auf eine eigene Ebene verschobenen Elements werden relativ zu diesem Element gestapelt, nicht relativ zur Dokumentwurzel. Berücksichtigen Sie diese Änderungen des Stacking Contexts, wenn Sie Elemente auf eigene Ebenen verschieben.

Muster für die dynamische Anwendung

Fügen Sie will-change bei mouseenter oder zu Beginn einer Animation hinzu und entfernen Sie es bei mouseleave oder am Ende der Animation. So hat der Browser Zeit zur Vorbereitung, ohne dauerhaft GPU-Speicher für inaktive Elemente zu belegen.

  <pre class="snippet">el.addEventListener("mouseenter", () => el.style.willChange = "transform");
el.addEventListener("mouseleave", () => el.style.willChange = "auto");</pre>

Anzahl der Ebenen profilieren

Das Layers-Panel der Chrome DevTools visualisiert Ebenen, die auf eigene Ebenen verschoben wurden. Eine hohe Ebenenanzahl (Hunderte) weist auf eine übermäßige Layer-Promotion hin. Der Abschnitt Memory zeigt die GPU-Speichernutzung. Halten Sie die Anzahl der Ebenen auf ein Minimum und überwachen Sie sie anhand von Profilen leistungsschwacher Geräte.

Alternative mit der contain-Eigenschaft

CSS contain: layout paint beschränkt Layout- und Paint-Berechnungen auf einen Teilbaum, ähnlich wie eine Isolation. Dies verbessert die Leistung eigenständiger Widgets, ohne GPU-Ebenen zu erstellen – für nicht animierte Elemente eine kostengünstigere Optimierung als will-change.

Browserunterstützung und Verhalten

will-change wird von allen modernen Browsern vollständig unterstützt. Browser behandeln es als Hinweis, nicht als Befehl, und können es bei knappen Ressourcen ignorieren. Verlassen Sie sich daher nicht darauf als Garantie, sondern verwenden Sie es ausschließlich als Hinweis zur Leistungsoptimierung.

Wissensüberprüfung

Welches ist das wichtigste Risiko, wenn will-change gleichzeitig auf viele Elemente angewendet wird?

Zusammenfassung

will-change verschiebt Elemente bereits vor Animationen auf GPU-Compositor-Ebenen und beseitigt dadurch die Kosten der Promotion zu Animationsbeginn. Wenden Sie es dynamisch und sparsam an – nur dort, wo ein Profil Ruckeln zeigt –, um einen übermäßigen GPU-Speicherverbrauch durch zu viele Ebenen zu vermeiden.

Häufig gestellte Fragen

Ist die Lektion „will-change und Layer-Promotion“ kostenlos?

Ja — der vollständige Text von „will-change und Layer-Promotion“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des CSS Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der CSS Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „will-change und Layer-Promotion“?

Geben Sie dem Browser mit will-change einen Hinweis, Elemente für flüssigere Animationen auf GPU-Layer zu verschieben. Du übst CSS Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um CSS Academy zu starten?

Keine Vorkenntnisse erforderlich. CSS Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „will-change und Layer-Promotion“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser CSS Academy-Lektion Code schreiben und ausführen?

Ja. Jede CSS Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Kritisches CSS und renderblockierende Ressourcen
  2. Layout, Paint und Composite: Die Rendering-Pipeline
  3. will-change und Layer-Promotion
  4. CSS-Abdeckung und ungenutzte Stile
← Zurück zu CSS Academy