我正在为我的网站设计一个黑暗模式。考虑到我有很多书面内容,这对晚间阅读特别有帮助。我有一个切换,并借用了一个功能,似乎工作到目前为止:
$(function() {
$(".switch").click(function() {
$("#canvas-wrapper").css("background", "#222");
$("p").css("color", "#DDD");
});
});
我想让用户根据需要切换这些更改,但是,当我尝试添加另一行时--定义另一个元素的css更改--该函数只将样式应用于第一个#canvas-wrapper
元素,之后的所有内容都被忽略。
在函数后面我的语法是不是不正确?另外,如果用户取消了切换,我需要用一种能将CSS返回到其原始状态的方式来编写函数。我该如何处理这个问题?
我对jQuery很不在行,也没有太多的经验。
5条答案
按热度按时间luaexgnf1#
您可以在CSS中定义dark模式样式,并使用jQuery切换dark模式类,而不是更改每个元素。
我假设单击.switch两次会将其更改回lightmode,并且您当前的CSS默认显示lightmode样式。
中央支助组:
jQuery:
如果你愿意,你也可以使用CSS变量。然而,它仍然会涉及到类切换/更改代码中的某个地方。使用CSS变量但使用普通JS:https://dev.to/ananyaneogi/create-a-dark-light-mode-switch-with-css-variables-34l8
x33g5p2x2#
你可能必须为每一个元素写一些css,不管它是在亮模式还是暗模式。使用javascript在两者之间切换。你可以有一个类用于亮模式(.light-mode),然后一个用于暗模式。只要类 Package 器是一个div,你就可以了。
我将使用一个具有全局访问权限的js变量作为模式,并将其绑定到一个函数中。
CSS
gev0vcfq3#
你需要使用css和一个目标类,Jquery
toggleClass()
可以完成这个任务tp5buhyn4#
您可以通过一些技巧来解决这个问题,直接回答您的问题是通过实现暗/亮主题的toggleClass。
比如你看这个demo
我们的剧本是:
和我们的风格:
但您也可以通过使用根变量颜色来解决此问题,例如:
您也可以查看此demo
wvyml7n55#
关键要素是,无论您在站点的哪个位置,您都需要JQuery Cookie****来记住您的选择。* 它只会重置为默认状态 *。