通过为 body 元素动态添加/移除 darktheme 类,并配合 css 样式控制,可轻松实现点击按钮在深色与浅色主题间无缝循环切换,避免手动操作内联样式带来的状态管理难题。
要实现「单击切换暗黑模式、再点击恢复浅色模式」的闭环交互,核心原则是:不直接修改 element.style,而应通过 CSS 类控制主题状态。手动设置 body.style.backgroundColor 等内联样式不仅难以维护,还会覆盖外部 CSS 规则,且无法自然“撤销”——这正是原代码中“再点一次不恢复”的根本原因。
✅ 正确做法是使用 classList.toggle() 方法,它会自动判断并添加或移除指定类名,天然支持双向切换:
欢迎来到我的页面
/* CSS —— 默认为浅色主题(无需额外类) */
body {
background-color: #fff;
color: #333;
transition: background-color 0.3s ease, color 0.3s ease;
}
/* 暗黑主题样式 —— 仅当 body 拥有 .darktheme 类时生效 */
body.darktheme {
background-color: #111;
color: #eee;
}
body.darktheme #txtt {
color: #fff;
}// JavaScript
const toggleBtn = document.getElementById("themeToggle");
toggleBtn.addEventListener("click", () => {
document.body.classList.toggle("darktheme");
});? 关键优势说明:
⚠️ 注意事项:
至此,一次点击启用暗黑模式,再次点击即刻回归清爽浅色界面——简洁、健壮、符合现代 Web
开发最佳实践。