停止darkmode闪烁的JS

时间:2020-05-25 13:09:19

标签: javascript local-storage

我有一个带有明暗模式开关的网站。 它使用本地存储来记住用户的选择,因此下次他们回来时,将加载其首选主题。

样式更改借助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首先加载?

*注意:我知道这里有一个类似的问题,但是,该解决方案对我不起作用。

0 个答案:

没有答案
相关问题