CSS-Übergang wird für ausgeblendete Elemente nicht ausgelöst
In der Webentwicklung werden häufig CSS-Übergänge verwendet, um Änderungen an den Eigenschaften eines Elements zu animieren. Ein häufiger Stolperstein besteht jedoch darin, dass ein Element zunächst ausgeblendet ist (z. B. mit display: none) und dann sichtbar wird, der CSS-Übergang jedoch nicht aktiviert wird.
Hinter den Kulissen mit CSSOM und DOM
Um dieses Verhalten zu verstehen, müssen wir die Beziehung zwischen dem CSS Object Model (CSSOM) und dem Document Object Model (DOM) betrachten. Das DOM stellt die HTML-Struktur der Seite dar, während das CSSOM die berechneten Stile für jedes Element darstellt.
Während des Rendervorgangs erfolgen zuerst DOM-Manipulationen (z. B. das Ändern der Anzeigeeigenschaft). Anschließend berechnet der Browser die berechneten Stile (CSSOM) für alle Elemente auf der Seite neu, was als Reflow oder Layout bezeichnet wird. Abschließend werden die Änderungen visuell auf dem Bildschirm gerendert (Farbe).
Auswirkungen auf CSS-Übergänge
CSS-Übergänge erfordern den anfänglich berechneten Stil des Elements, um den Start zu berechnen Zustand. Bei ausgeblendeten Elementen sind die berechneten Stile jedoch im Wesentlichen null, da sie nicht angezeigt werden. Das bedeutet, dass beim Auslösen eines Übergangs der Anfangszustand für jeden übertragbaren Wert ungültig ist.
Lösungen
Um dieses Problem zu beheben, können Sie eine der folgenden Methoden verwenden Ansätze:
- Reflow erzwingen:Verwendung von requestAnimationFrame oder anderen Methoden, die einen Reflow auslösen Der Browser berechnet die berechneten Stile neu. Indem Sie kurz vor dem Auslösen des Übergangs einen Reflow aufrufen, stellen Sie sicher, dass die berechneten Stile aktuell sind.
- Verwenden Sie $.animate()**: .animate() intern erzwingt einen Reflow, indem es eine DOM-Manipulation auslöst und dann einen Rückruf plant, um den Übergang auszulösen. Dieser Ansatz ist jedoch normalerweise langsamer als die Verwendung einer direkten Reflow-Methode.
Beispiel
Der folgende Codeausschnitt zeigt, wie ein Reflow mithilfe von requestAnimationFrame erzwungen wird:
$('button').on('click', function() { $('.b').show(); // Show the hidden element requestAnimationFrame(() => { // Force a reflow // Trigger the transitions $('.b').css('right', '80%'); $('.a').css('right', '80%'); }); });
Durch die Verwendung von requestAnimationFrame stellen wir sicher, dass der CSS-Übergang erfolgreich ausgelöst wird, auch wenn er zunächst ausgeblendet ist Elemente.
Das obige ist der detaillierte Inhalt vonWarum funktionieren CSS-Übergänge nicht bei versteckten Elementen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Dies ist der 3. Beitrag in einer kleinen Serie, die wir in Form von Barrierefreiheit gemacht haben. Wenn Sie den zweiten Beitrag verpasst haben, lesen Sie "Verwalten des Benutzerfokus mit: Fokus-Sichtbar". In

Dieses Tutorial zeigt, dass professionelle JavaScript-Formulare mithilfe des Frameworks Smart Forms erstellt werden (Hinweis: Nicht mehr verfügbar). Während der Rahmen selbst nicht verfügbar ist, bleiben die Prinzipien und Techniken für andere Formbauer relevant.

Die CSS-Box-Shadow- und Umrisseigenschaften haben Thema gewonnen. JSON-Unterstützung in WordPress 6.1. Sei ein paar Beispiele für die Funktionsweise in realen Themen und welche Optionen wir diese Stile auf WordPress -Blöcke und Elemente anwenden müssen.

Der Aufbau eines Inline -Texteditors ist nicht trivial. Der Prozess beginnt damit, dass das Zielelement bearbeitbar wird und potenzielle SyntaxE -Ausnahmen behandelt. Erstellen Sie Ihren Editor Um diesen Editor zu erstellen, müssen Sie den Inhalt dynamisch ändern

Die Sufelte Transition -API bietet eine Möglichkeit, Komponenten zu beleben, wenn sie das Dokument eingeben oder verlassen, einschließlich benutzerdefinierter Svelte -Übergänge.

Wenn Sie kürzlich mit GraphQL gearbeitet oder seine Vor- und Nachteile überprüft haben, haben Sie zweifellos Dinge wie "GraphQL nicht unterstützen Caching" oder gehört

Dieses Tutorial führt Sie durch das Erstellen eines Datei -Upload -Systems mit Node.js, Express und Multer. Wir werden die Hoch- und mehrere Datei -Uploads behandeln und sogar das Speichern von Bildern in einer MongoDB -Datenbank zum späteren Abrufen demonstrieren. Richten Sie zunächst Ihr Projec ein

In diesem Artikel werden die auf dem Envato -Markt verfügbaren Top -Skripte für PHP -Formulierungen untersucht und deren Funktionen, Flexibilität und Design verglichen. Lassen Sie uns vor dem Tauchen in bestimmte Optionen verstehen, was ein PHP -Formular Builder ist und warum Sie einen verwenden würden. Eine PHP -Form


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.
