gpt4 book ai didi

javascript - 如何在同一页面上连接两个深色模式按钮?

转载 作者:行者123 更新时间:2023-11-28 16:48:38 25 4
gpt4 key购买 nike

我一直在我的页面上使用两个深色模式按钮。一个位于菜单栏,另一个位于页脚。

但是,问题是,每当我从任何一个按钮切换到深色模式时,另一个按钮都不会自行切换。

假设,如果我从菜单栏切换夜间模式,那么页脚按钮将继续显示白天模式已启用。

这是我的Website Test Page.

也请帮助解决我的代码问题。

谢谢

菜单栏按钮代码


<label class="switch" style="padding: 23px 0;">
<input type="checkbox" onclick="themeToggle()" class="theme-switcher">
<div>
<span></span>
</div>

页脚按钮代码


<label class="switcher">
<input type="checkbox" onclick="themeToggle()" class="theme-switcher-2">
<div>
<i class="fas fa-sun"></i>
<i class="fas fa-arrow-left arrow"></i>
<i class="fas fa-moon"></i>
</div>
</label>


两个按钮的js


var tSwitcher = document.getElementsByClassName('theme-switcher');
let element = document.body;

let onpageLoad = localStorage.getItem("theme") || "";
if (onpageLoad != null && onpageLoad == 'dark-mode') {
for(let i = 0; i<tSwitcher.length; i++){
tSwitcher[i].checked = true;
}

}

if(onpageLoad) element.classList.add(onpageLoad);

function themeToggle() {
if (event.target.checked) {
localStorage.setItem('theme', 'dark-mode');
element.classList.add('dark-mode');
} else {
localStorage.setItem('theme', '');
element.classList.remove('dark-mode');
}
}

最佳答案

 var tSwitcher = document.getElementsByClassName('theme-switcher')[0];
var t2 = document.getElementsByClassName('theme-switcher-2')[0];

function themeToggle() {
if (event.target.checked) {
tSwitcher.checked = true;
t2.checked = true
localStorage.setItem('theme', 'dark-mode');
element.classList.add('dark-mode');
} else {
tSwitcher.checked = false;
t2.checked = false
localStorage.setItem('theme', '');
element.classList.remove('dark-mode');
}
}
 <input type="checkbox" onclick="themeToggle()" class="theme-switcher">
<input type="checkbox" onclick="themeToggle()" class="theme-switcher-2">

每当调用themeToggle时,更改两个输入的checked属性。

关于javascript - 如何在同一页面上连接两个深色模式按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60237333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com