【发布时间】:2020-12-14 02:11:37
【问题描述】:
我有一个暗模式功能。 HTML、SCSS 和 javascript 工作正常。
但是当我刷新页面时,一切都恢复了正常,而不是在黑暗模式下。
我想将深色模式和浅色模式的值保存到localStorage。但我很困惑,我不知道该怎么做。有没有人可以帮助我?请帮帮我
我已经搜索了几个搜索,但仍然无法正常工作。如果您不能回答我的问题,请不要将此帖子设为类似帖子。因为我已经阅读并实现了它,但它不起作用。
这是我的CODEPEN
模式切换器 HTML
<div id="modeSwitcher">
<input type="checkbox" class="checkbox" id="chk" />
<label class="label" for="chk">
<i class="fas fa-moon"></i>
<div class="ball"></div>
</label>
</div>
SCSS
#modeSwitcher{
margin: 5% 50%;
.checkbox {
opacity: 0;
position: absolute;
&:checked + {
.label {
.ball {
transform: translateX(35px);
&::after{
content: '';
position: absolute;
background-color: #0A0E27;
width: 13px;
height: 13px;
border-radius: 50%;
bottom: 50%;
left: -5%;
transform: translateY(50%);
}
}
}
}
}
.label {
background-color: #0A0E27;
border-radius: 50px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: space-between;
padding: 5px;
margin: 0;
position: relative;
height: 16px;
width: 50px;
transform: scale(1.5);
.fa-moon{
color:#0A0E27 ;
}
.ball {
background-color: #FDC503;
border-radius: 50%;
position: absolute;
top: 3px;
left: 3px;
height: 20px;
width: 20px;
transform: translateX(0px);
transition: transform 0.2s linear;
}
}
}
body{
background-color: #fff;
&.dark{
background-color: black;
}
}
Javascript
const check = document.getElementById('chk');
check.addEventListener('change', () => {
document.body.classList.toggle('dark');
localStorage.darkMode=!localStorage.darkMode;
});
window.onload=function() {
if(localStorage.darkMode) document.body.classList.toggle('dark');
}
【问题讨论】:
标签: javascript sass local-storage