我有一个带有明暗模式开关的网站。 它使用本地存储来记住用户的选择,因此下次他们回来时,将加载其首选主题。
样式更改借助css变量进行。
这是JS
let darkMode = localStorage.getItem('darkMode');
const darkModeToggle = document.getElementById('dark-mode-toggle');
const enableDarkMode = () => {
document.body.classList.add('darkmode');
localStorage.setItem('darkMode', 'enabled');
}
const disableDarkMode = () => {
document.body.classList.remove('darkmode');
localStorage.setItem('darkMode', null);
}
if (darkMode === 'enabled') {
enableDarkMode();
}
darkModeToggle.addEventListener('click', () => {
darkMode = localStorage.getItem('darkMode');
if (darkMode !== 'enabled') {
enableDarkMode();
} else {
disableDarkMode();
}
});
问题是:当您从一页转到另一页时,该页先闪烁浅色主题,然后变暗。如果用户选择了暗模式,如何防止亮模式css首先加载?
*注意:我知道这里有一个类似的问题,但是,该解决方案对我不起作用。