So beseitigen Sie das Flackern des weißen Hintergrunds beim Neuladen des Dunkelmodus
Bei der Implementierung des Dunkelmodus in einer App ist es wichtig, das Problem des Weiß zu berücksichtigen Hintergrund flackert beim Neuladen der Seite. Dieses unschöne Flackern tritt auf, wenn die Seite zunächst im hellen Modus geladen wird, bevor sie in den dunklen Modus wechselt.
Lösung: Seitenwiedergabe verhindern
Der Schlüssel zur Lösung dieses Flackerproblems liegt in Blockieren der Seitenwiedergabe. Durch Platzieren eines kleinen Skript-Tags innerhalb des
Im Abschnitt des Dokuments können Sie den DOM-Parser-Prozess anhalten. Dadurch kann der JavaScript-Interpreter das data-theme-Attribut dem -Objekt zuweisen. Element, bevor der Seitenrenderingprozess fortgesetzt wird.Implementierung:
<code class="html"><script> // Set the theme in <HEAD> before any other tag. const setTheme = (theme) => { theme ??= localStorage.theme || "light"; document.documentElement.dataset.theme = theme; localStorage.theme = theme; }; setTheme(); </script></code>
Positionieren Sie alle anderen Skripte direkt davor auf eine Weise, die das Rendern nicht blockiert das abschließende tag:
<code class="html"><script src="js/index.js"></script> <!-- Other <script> tags here --> </body> </html></code>
Passen Sie den Code in Ihrer JavaScript-Datei wie folgt an:
<code class="javascript">const elToggleTheme = document.querySelector('#dark-mode-button input[type="checkbox"]'); elToggleTheme.checked = localStorage.theme === "dark"; elToggleTheme.addEventListener("change", () => { const theme = elToggleTheme.checked ? "dark" : "light"; setTheme(theme); });</code>
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie verhindert man das Flackern des weißen Hintergrunds beim Neuladen im Dunkelmodus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!