深色模式功能

发布于 2025-01-12 20:38:47 字数 979 浏览 3 评论 0原文

我创建了一个暗模式功能,允许我使用本地存储来“保存”用户通过单击图标选择的最后选择的首选项,即使他们转到网站内的不同页面、刷新、关闭等。我能做什么不知道如何添加 if 语句,以便在启用“暗模式”时图标也将其“src”转换为不同的 png 文件,然后在禁用它时切换回另一个图标。如果有人可以帮助我,我将非常感激。

let darkMode = localStorage.getItem('darkMode'); 

const darkModeToggle = document.querySelector('#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(); 
  }
});

const scrollBtn = document.getElementById("scroll_up")

    scrollBtn.addEventListener("click", () => {
        document.documentElement.scrollTop= 0;
    });

I created a dark mode function that allows me to use local storage to "save" the last selected preference the user chose by clicking on an icon even if they go to different pages within the site, refresh, close, etc. What I can't figure out is how I can add an if statement so that the icon will also chance its "src" into a different png file when the "darkmode" is enabled and then switch back to another icon when it is disabled. If anyone could help me with this I would very much appreciate it.

let darkMode = localStorage.getItem('darkMode'); 

const darkModeToggle = document.querySelector('#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(); 
  }
});

const scrollBtn = document.getElementById("scroll_up")

    scrollBtn.addEventListener("click", () => {
        document.documentElement.scrollTop= 0;
    });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

゛时过境迁 2025-01-19 20:38:47

只需修改 src 属性,如下所示:

const enableDarkMode = () => {
  document.body.classList.add('darkmode');
  localStorage.setItem('darkMode', 'enabled');
  darkModeToggle.src = "./images/darkToggle.svg"; // replace the path according to YOUR directory structure
}

const disableDarkMode = () => {
  document.body.classList.remove('darkmode');
  localStorage.setItem('darkMode', null);
  darkModeToggle.src = "./images/lightToggle.svg"; // replace the path according to YOUR directory structure
}

Just modify the src attribute, like so:

const enableDarkMode = () => {
  document.body.classList.add('darkmode');
  localStorage.setItem('darkMode', 'enabled');
  darkModeToggle.src = "./images/darkToggle.svg"; // replace the path according to YOUR directory structure
}

const disableDarkMode = () => {
  document.body.classList.remove('darkmode');
  localStorage.setItem('darkMode', null);
  darkModeToggle.src = "./images/lightToggle.svg"; // replace the path according to YOUR directory structure
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文