【发布时间】:2021-01-23 01:16:15
【问题描述】:
我在网站上启用了暗模式。它目前有一个拨动开关,可以将布局从浅色更改为深色,反之亦然。
它正在使用以下代码:
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
const currentTheme = localStorage.getItem('theme');
if (currentTheme) {
document.documentElement.setAttribute('data-theme', currentTheme);
if (currentTheme === 'dark') {
toggleSwitch.checked = true;
}
}
function switchTheme(e) {
if (e.target.checked) {
document.documentElement.setAttribute('data-theme', 'dark');
localStorage.setItem('theme', 'dark');
} else {
document.documentElement.setAttribute('data-theme', 'light');
localStorage.setItem('theme', 'light');
}
}
toggleSwitch.addEventListener('change', switchTheme, false);
<div class="theme-switch-wrapper">
<label class="theme-switch" for="checkbox">
<input type="checkbox" id="checkbox"/>
<div class="slider round"></div>
</label>
<em>DARK</em>
<strong>MODE</strong>
</div>
现在我想升级到图标点击。例如,如果启用了浅色模式,单击它时应该会看到深色模式的图标,用户将打开深色模式。同理,如果开启了深色模式,就会显示浅色模式的图标,如果用户点击它,就会激活浅色模式。
感谢您的任何帮助或建议。
【问题讨论】:
-
只放2个图标,如果启用了相反的模式则隐藏一个
标签: javascript html css