javascript - 如何为两个独立的功能设置本地存储(暗光模式)
问题描述
新手编码器在这里。得到了根据需要做的基本功能,但我对Javascript一无所知,但愿意学习。我正在从网络上借用代码。我在下班后开发我们的商业网站,就像我白天的工作一样,我是一名建筑主管,所以只能在晚上这样做。现在我只需要能够将颜色主题选择存储在 localStorage 中,并在浏览器重新打开时调用它。这就是我选择 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
}
};
推荐阅读
- sas - 如果表为空,如何获得等于零的行数而不是什么都没有是SAS
- vue.js - 在 vue 组件包 (npm) 中加载样式
- vue.js - vue.js中如何根据类型将js函数拆分为多个文件
- java - Kafka 不会从 PEM 证书开始
- docker - 调用期间背书失败:“模拟错误:错误启动容器:\”链代码\“在$PATH中找不到可执行文件:未知”
- docker - 在 kubernetes 中都使用 mongoose 连接到 mongodb
- c# - 取回添加的位数
- bash - 如何将错误日志添加到 bash 脚本,这将保存脚本运行期间的所有错误
- python - 计算给定角度的余弦,舍入结果并打印
- python - 如何在 Python 中将第一行与每个剩余的行连接起来,将第二行与每个剩余行的下面连接 7 个周期?