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!

Ich weiß, ich weiß: Es gibt eine Menge von Content -Management -Systemoptionen, und während ich mehrere getestet habe, war keiner wirklich derjenige, den Sie wirklich wissen? Seltsame Preismodelle, schwierige Anpassungen, einige werden sogar ein Ganzes &

Das Verknüpfen von CSS -Dateien mit HTML kann durch die Verwendung von Elementen in einem HTML erreicht werden. 1) Verwenden Sie Tags, um lokale CSS -Dateien zu verknüpfen. 2) Mehrere CSS -Dateien können durch Hinzufügen mehrerer Tags implementiert werden. 3) Externe CSS -Dateien verwenden absolute URL -Links wie z. 4) Stellen Sie die korrekte Verwendung von Dateipfaden und CSS -Dateiladeauftrag sicher und optimieren Sie die Leistung können mit CSS -Präprozessor zusammengeführt werden, um Dateien zu verschmelzen.

Die Auswahl von Flexbox oder Grid hängt von den Layoutanforderungen ab: 1) Flexbox ist für eindimensionale Layouts wie die Navigationsleiste geeignet. 2) Das Gitter eignet sich für zweidimensionale Layouts wie Zeitschriftenlayouts. Die beiden können im Projekt verwendet werden, um den Layout -Effekt zu verbessern.

Der beste Weg, um CSS -Dateien einzubeziehen, besteht darin, Tags zu verwenden, um externe CSS -Dateien in den HTML -Teil einzuführen. 1. Verwenden Sie Tags, um externe CSS -Dateien einzuführen, wie z. 2. Für kleine Anpassungen können Inline -CSS verwendet werden, sollten jedoch mit Vorsicht verwendet werden. 3. Große Projekte können CSS -Präprozessoren wie SASS oder weniger verwenden, um andere CSS -Dateien über @import zu importieren. 4. Für die Leistung sollten CSS -Dateien zusammengeführt und CDN verwendet und mit Tools wie CSSNano komprimiert werden.

Ja, youShouldlearnbothflexBoxandgrid.1) FlexBoxiSidealfore-dimensional, flexibelayoutslikenAvigationMenus.2) GridexcelStwo-dimensional, komplexDesignsuchasmagazinelayouts.3) Kombininierungs-Botenhances-Flexible-und-und -Anteilungskraft, und -forsfossivität,

Wie sieht es aus, Ihren eigenen Code neu zu gestalten? John Rhea nimmt eine alte CSS -Animation auseinander, die er geschrieben hat, und geht durch den Denkprozess der Optimierung.

CsSanimationsarenotinherenthardbutRequirePractICEANDUnDing-fordertofcsPropertiesandTimingfunktionen.1) StartwithsimpleanimationslikescalingabuttononoversKeyFrames.2) useaSingFunctionslikecubic-BezierForteffects, SuchasabouNects, SuchasabouNects,, zu

@KeyFramesispopulardUeToitSverSatility und PowerIncreatingsmoothcsSanimations.KectrickSinclude: 1) DefiningsmoothTransitionSbetTates, 2) AnimatingMultipleProperTiesimultan, 3) mit VendorprefixesforBrowserCompatible, 4) Kombinieren, 4) Kombinieren, 4) Kombinieren, 4) Kombinieren, 4) Kombinieren


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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor
