【发布时间】:2020-01-24 06:25:16
【问题描述】:
我有这段代码:
$(document).ready(function() {
$(".lightDark").hide();
$("#changeTheme").click(function() {
$(".lightDark").toggle("slow");
});
// Switch theme
$('#lightTheme').click(function() {
$('link[href="darkMode.css"]').attr('href','lightMode.css');
});
$('#darkTheme').click(function() {
$('link[href="lightMode.css"]').attr('href','darkMode.css');
});
});
body {
background-color: black;
}
.changeThemeButtons {
float: right;
margin-top: 50px;
margin-right: 50px;
border:2px solid white;
border:none;
color:white;
}
.changeThemeButtons td {
font-family: 'Open Sans Condensed', sans-serif;
font-size: 1.6em;
text-transform: uppercase;
color:white;
text-align: center;
}
.changeThemeButtons th {
background-color: #733FFF;
border-radius: 100px;
height:200px;
width:200px;
}
#changeTheme {
cursor: pointer;
}
#changeTheme i {
color:#f00;
}
#darkTheme {
color:black;
margin-right: 50px;
}
#lightTheme {
color:white;
}
<script src="https://kit.fontawesome.com/c22b2f5999.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" id="darkMode" href="darkMode.css">
<div class="block two">
<nav>
<a href="#about">About me</a>
<a href="#myWork">My Work</a>
<a href="#services">Services</a>
<a href="#contact">Contact</a>
</nav>
<table class="changeThemeButtons" align="right">
<tr>
<td><a id="changeTheme">Change Theme <i class="fas fa-caret-down"></i></a></td>
</tr>
<tr>
<th class="lightDark">
<a href="#" id="darkTheme"><i class="fas fa-circle fa-3x"></i></a>
<a href="#" id="lightTheme"><i class="fas fa-circle fa-3x"></i></a>
</th>
</tr>
</table>
一切正常,直到您在 lightMode.css 上,假设您刷新页面,然后它会重置为 darkMode.css。我试图从 HTML(使用 JQuery)中删除默认的 darkMode.css,但它似乎不起作用。我需要它保持 lightMode(如果选择),直到您再次单击以手动更改为 darkMode。
【问题讨论】:
-
考虑使用会话变量或 cookie 来存储 css 状态。
-
预计每次刷新都会将所有内容“刷新”到起点,因为所有脚本和代码都会再次加载。当用户选择时,您可能需要将用户选择保存在 localStorage 中,然后在页面启动时从 localStorage 中读取它
-
您可以在本地存储中设置一个标志,然后在页面加载时检查该标志以仅启用浅色或深色模式
-
localStorage.setItem('myCat', 'Tom'); var cat = localStorage.getItem('myCat');像会话一样工作
标签: javascript jquery html css stylesheet