Javascript 如何为两个单独的功能(暗光模式)设置本地存储
这里是新手程序员。获得了需要的基本功能,但我对Javascript一无所知,但愿意学习。我从网络上到处借用代码。我在下班后开发我们的商业网站,因为我白天的工作是建筑监理,所以只能在晚上做。现在,我只需要能够将颜色主题选择存储在localStorage中,并在浏览器重新打开时调用它。这就是我选择本地存储的原因 我已经在localStorage上尝试过这些指南,但对于如何正确地进行调用和存储所选内容,我感到目瞪口呆。这两个按钮功能完美地改变了导航栏的颜色,并改变了最基本的颜色——主体颜色和字体颜色Javascript 如何为两个单独的功能(暗光模式)设置本地存储,javascript,local-storage,Javascript,Local Storage,这里是新手程序员。获得了需要的基本功能,但我对Javascript一无所知,但愿意学习。我从网络上到处借用代码。我在下班后开发我们的商业网站,因为我白天的工作是建筑监理,所以只能在晚上做。现在,我只需要能够将颜色主题选择存储在localStorage中,并在浏览器重新打开时调用它。这就是我选择本地存储的原因 我已经在localStorage上尝试过这些指南,但对于如何正确地进行调用和存储所选内容,我感到目瞪口呆。这两个按钮功能完美地改变了导航栏的颜色,并改变了最基本的颜色——主体颜色和字体颜色
// Light-Mode
function toggleLight() {
var body = document.getElementById("body");
var currentClass = body.className;
body.className = currentClass == "dark-mode" ? "light-mode" : "light-mode";
document.getElementById("nav").className = "navbar sticky-top navbar-expand-sm navbar-dark bg-dark";
localStorage.setItem("theme", "light-mode")
}
//Dark-Mode
function toggleDark() {
var body = document.getElementById("body");
var currentClass = body.className;
body.className = currentClass == "light-mode" ? "dark-mode" : "dark-mode";
document.getElementById("nav").className = "navbar sticky-top navbar-expand-sm navbar-light bg-light";
localStorage.setItem("theme", "dark-mode")
}
我希望它能在重新加载浏览器时存储和回忆上次选择的颜色/主题,但似乎我缺少了一些主要的编码。任何帮助都将不胜感激。在每个函数结束时,主题名称将保存在localStorage中。onLoad事件读取此值并调用相应的函数:
window.onload = () => {
if (localStorage.getItem("theme") === "dark-mode") {
toggleDark();
} else {
toggleLight(); // consider as default theme
}
};
您使用localStorage.setItem存储主题,但从不使用调用它
页面加载时:
var body = document.getElementById("body");
body.className = localStorage.getItem("theme");
作为一些一般性建议:1您的两个功能几乎相同。您可能想考虑使它们成为一个函数,以避免重复代码,并使用参数的光与黑暗。2你有两个三分之一不是真正起作用的。例如,currentClass==灯光模式?暗模式:暗模式;表示当前的课堂灯光模式是什么?然后将其设置为暗模式。否则,将其设置为暗模式。如果两种方法的结果都是一样的,为什么还要检查currentClass呢?再一次,只是一些指针。快乐编码!:链接到我正在处理的实际模板的画笔。塔克斯。我来看看。就像我说的,完全是编程新手。只知道网页设计的基础知识@TylerRoperi如果你在画笔上查看开发人员工具,你会发现主题存储得很好。你只需要回忆一下当地的情况存储.收到谢谢,这个对我有用。感谢您的帮助@Marcelo