【发布时间】:2021-11-13 13:40:33
【问题描述】:
如何重写这段代码:
var toggle = document.getElementById("test_switch");
var storedTheme = localStorage.getItem('theme') || (window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light");
if (storedTheme)
document.documentElement.setAttribute('data-theme', storedTheme)
toggle.onclick = function() {
var currentTheme = document.documentElement.getAttribute("data-theme");
var targetTheme = "light";
if (currentTheme === "light") {
targetTheme = "dark";
}
document.documentElement.setAttribute('data-theme', targetTheme)
localStorage.setItem('theme', targetTheme);
};
所以这保留了它的复选标记:
<label for="mode_test">
<input type="checkbox" id="test_switch">
</label>
我在一篇博客文章中偶然发现了上面的代码,其中包括本地存储和 (prefers-color-scheme: dark) 在他们的暗模式实现中,我只是不知道如何使用复选框来协调它。
谢谢。
【问题讨论】:
标签: javascript darkmode