Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Wie löst man CSS-Übergänge bei angehängten Elementen aus?

Linda Hamilton
Freigeben: 2024-11-04 04:20:29
Original
586 Leute haben es durchsucht

How to Trigger CSS Transitions on Appended Elements?

CSS-Übergänge bei angehängten Elementen auslösen

Warum werden sofortige CSS-Animationen ignoriert?

Wenn Elemente an das DOM angehängt werden , Browser führen häufig Batch-Reflows durch, um die Leistung zu optimieren. Dies kann jedoch dazu führen, dass unmittelbare CSS-Übergänge ignoriert werden, was dazu führt, dass der Endzustand des Übergangs sofort gerendert wird.

Wie und warum funktionieren diese Methoden?

  • setTimeout: Verzögert das Hinzufügen der Klasse zu einer neuen JavaScript-Runde und stellt sicher, dass es zwei unterschiedliche Stilwerte gibt, die die Rendering-Engine während des Übergangs interpolieren kann.
  • offsetWidth: Erzwingt einen Reflow durch Zugriff auf eine Reflow-verursachende Eigenschaft und löst die anfängliche Berechnung des Stilwerts aus.
  • Fokus: Löst einen synchronen Reflow aus, sodass der Übergang sofort beginnen kann.

Gibt es andere Möglichkeiten?

Andere Methoden zum Auslösen von Übergängen für angehängte Elemente umfassen:

  • requestAnimationFrame: Plant das Hinzufügen der Klasse im nächsten Browser-Frame und trennt es von der ersten Anhängerunde.
  • MutationObserver: Beobachtet DOM-Änderungen und löst den Übergang entsprechend aus.

Bevorzugte Lösung

Die bevorzugte Lösung ist subjektiv, aber viele Entwickler bevorzugen den Zugriff auf offsetWidth, da dadurch ein synchroner Reflow erzwungen und die Ausführung des Übergangs garantiert wird. Diese Methode wird auch in den wichtigsten Browsern unterstützt.

Das obige ist der detaillierte Inhalt vonWie löst man CSS-Übergänge bei angehängten Elementen aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage