CSS-Transitions bei Änderungen des React-Status
Lösen Sie CSS-Transitions aus, indem Sie Klassennamen mit dem React-Status umschalten – für Übergänge von opacity, transform und color.
CSS-Transitions bei Änderungen des React-Status ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 1 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 React Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist eine CSS-Transition
Eine CSS transition interpoliert eine Eigenschaft über einen Zeitraum gleichmäßig zwischen zwei Werten, statt sofort umzuschalten. Sie deklarieren sie am Element mit transition: property duration timing-function delay.
In React animieren Sie normalerweise keine Inline-Werte manuell. Stattdessen schalten Sie mithilfe des Zustands eine Klasse oder einen Stil um, und CSS übernimmt die Zwischenframes.
Eine Transition durch Umschalten einer Klasse auslösen
Das gängige Muster besteht darin, einen booleschen Wert in useState zu speichern und bei seiner Änderung eine CSS-Klasse auszutauschen. Ändert sich die Klasse, erhält die Zieleigenschaft einen neuen Wert, und CSS animiert den Unterschied.
Beispielsweise steuert isOpen, ob das Element die Klasse open besitzt, und die Klasse open legt eine andere Höhe oder Transformation fest.
Ein boolescher Zustand für isVisible
Eine typische Einrichtung ist const [isVisible, setIsVisible] = useState(false). Ein Button ruft setIsVisible(v => !v) auf, um den Wert umzuschalten.
Der funktionale Updater v => !v verhindert veralteten Zustand, wenn mehrere Aktualisierungen gemeinsam in die Warteschlange gestellt werden, und hält das Umschalten zuverlässig.
Bedingte Klasse mit Template-Strings
Sie erstellen className dynamisch: className={'panel ' + (isVisible ? 'panel--shown' : 'panel--hidden')}. Die Basisklasse enthält die Transition-Deklaration, die Modifikatorklassen enthalten die Start- und Endwerte.
Wenn transition in der immer vorhandenen Basisklasse bleibt, läuft die Animation in beide Richtungen – beim Öffnen und Schließen.
transform und opacity gemeinsam animieren
Mehrere Eigenschaften können Sie gleichzeitig animieren, indem Sie sie auflisten: transition: transform 300ms ease, opacity 300ms ease. Ein Fade-and-Slide-Effekt kombiniert eine Änderung von opacity mit einem translateY in transform.
Das gleichzeitige Animieren erzeugt einen eleganten Eintritt, bei dem das Element nach oben gleitet und gleichzeitig eingeblendet wird.
Mit transition-delay gestaffelte Animationen erzeugen
transition-delay verzögert den Beginn einer Transition. Indem Sie Listenelementen zunehmend größere Verzögerungen geben, erzeugen Sie eine gestaffelte Kaskade, bei der jedes Element kurz nach dem vorherigen animiert wird.
In React können Sie die Verzögerung inline berechnen, zum Beispiel style={{ transitionDelay: index * 50 + 'ms' }}.
Warum display nicht animiert werden kann
Die Eigenschaft display ist nicht animierbar, da es zwischen none und block keine Zwischenwerte gibt. Eine Transition dieser Eigenschaft führt zu einem sofortigen Sprung, nicht zu einem Ausblenden.
Stattdessen animieren Sie opacity für das visuelle Ein- bzw. Ausblenden und schalten pointer-events: none um, damit das ausgeblendete Element unsichtbar keine Klicks verarbeitet.
Timing-Funktionen
Die Timing-Funktion bestimmt, wie sich die Geschwindigkeit über die Dauer verändert. linear bewegt sich mit konstanter Geschwindigkeit, ease beginnt und endet langsam, und cubic-bezier(...) ermöglicht eine vollständig benutzerdefinierte Kurve.
Benutzerdefinierte Kurven eignen sich hervorragend für ein knackiges oder federndes Bewegungsgefühl, etwa cubic-bezier(0.34, 1.56, 0.64, 1) für ein leichtes Überschwingen.
CSS-Variablen für die Dauer
Sie können Dauern in CSS-benutzerdefinierten Eigenschaften wie --speed: 300ms speichern und wiederverwenden: transition: opacity var(--speed) ease. So bleiben Zeitabläufe in allen Komponenten konsistent.
React kann die Variable sogar inline über style={{ '--speed': '500ms' }} setzen, sodass Props das Timing der Animation bestimmen.
Für bessere Performance transform und opacity bevorzugen
Browser können transform und opacity im GPU-Compositor animieren, ohne das Layout neu zu berechnen oder neu zu zeichnen. Das Animieren von Eigenschaften wie width, top oder margin erzwingt dagegen in jedem Frame Layout-Arbeit und kann zu Ruckeln führen.
Wenn Sie etwas verschieben, skalieren oder drehen müssen, verwenden Sie transform; zum Ein- oder Ausblenden verwenden Sie opacity.
Alles zusammenführen
Eine zuverlässige Transition in React kombiniert einen booleschen Zustand, eine bedingte Modifikatorklasse und eine Basisklasse, die transition für GPU-freundliche Eigenschaften deklariert. Der Zustand ändert die Klasse, und CSS übernimmt die Animation.
Das hält Ihre Komponenten deklarativ und nutzt zugleich den Browser, um flüssige Bewegungen zu erzeugen.
Kurztest
Testen Sie Ihr Verständnis für performante Animationen.
Zusammenfassung
Sie haben gelernt, CSS-Transitions durch das Umschalten zustandsabhängiger Klassen auszulösen, transform und opacity gemeinsam zu animieren, mit Verzögerungen zu staffeln und Transitionen von display zu vermeiden, indem Sie opacity zusammen mit pointer-events verwenden.
Außerdem haben Sie Timing-Funktionen und Dauern mit CSS-Variablen kennengelernt und gesehen, warum GPU-kompositierte Eigenschaften Bewegungen flüssig halten.
Lerne React mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 88
- Lektionen
- 324
Häufig gestellte Fragen
Ist die Lektion „CSS-Transitions bei Änderungen des React-Status“ kostenlos?
Ja — der vollständige Text von „CSS-Transitions bei Änderungen des React-Status“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „CSS-Transitions bei Änderungen des React-Status“?
Lösen Sie CSS-Transitions aus, indem Sie Klassennamen mit dem React-Status umschalten – für Übergänge von opacity, transform und color. Du übst React 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 React Academy zu starten?
Keine Vorkenntnisse erforderlich. React 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 1 von 4.
Wie lange dauert die Lektion „CSS-Transitions bei Änderungen des React-Status“?
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 React Academy-Lektion Code schreiben und ausführen?
Ja. Jede React 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
- CSS-Transitions bei Änderungen des React-Status
- CSS-Keyframe-Animationen mit React
- useLayoutEffect für Messungen vor Animationen
- Ein- und Austrittsanimationen ohne Bibliothek