【发布时间】:2021-09-30 20:33:07
【问题描述】:
我目前正在为我的网站添加一个深色主题切换,但似乎无法找出将数据存储到 LocalStorage 的最佳方式。我所使用的只是一个按钮,用于切换主文档:root 上的“暗”类。实际的切换效果非常好,我只是在努力让选定的选项留在 LocalStorage 中。
这是我尝试添加的带有 LocalStorage 的代码(它确实将主题的键保存到 LocalStorage 但不保存实际的类切换)。
document.addEventListener("DOMContentLoaded", function () {
const theme = localStorage.getItem("theme", "dark");
const darkModeToggle = document.getElementById("modeSwitch");
darkModeToggle.addEventListener("click", function () {
document.documentElement.classList.toggle("dark");
if (document.documentElement.classList.contains("dark")) {
localStorage.setItem("theme", "dark");
}
});
});
这里也是我的 CSS 变量供参考。
:root {
--main-background: #f8fafb;
--app-background: #ffffff;
--app-background-alt: #fcfcfc;
--app-background-hover: #f8fafb;
--dark-background: #141923;
--main-color: #000000;
--secondary-color: #747987;
}
.dark:root {
--main-background: #141923;
--app-background: #171b2c;
--app-background-alt: #1c2031;
--app-background-hover: #1d213d;
--dark-background: #141923;
--main-color: #ffffff;
--secondary-color: #747987;
}
非常感谢。
【问题讨论】:
标签: javascript css save local-storage toggle