最佳答案
好的,我正在为我的网页创建一个允许用户改变主题的系统。我希望通过将所有颜色作为变量来实现这一点,并且颜色设置在 CSS 的: root 部分。
我想做的是通过 JavaScript 改变这些颜色。我查了查怎么做到的,但是我尝试过的方法都不管用。这是我目前的代码:
CSS:
:root {
--main-color: #317EEB;
--hover-color: #2764BA;
--body-color: #E0E0E0;
--box-color: white;
}
约翰逊:
(设置主题的代码,只需点击一个按钮就可以运行)-我没有麻烦将: root change 添加到其他2个主题中,因为它在 Dark 主题中不起作用
function setTheme(theme) {
if (theme == 'Dark') {
localStorage.setItem('panelTheme', theme);
$('#current-theme').text(theme);
$(':root').css('--main-color', '#000000');
}
if (theme == 'Blue') {
localStorage.setItem('panelTheme', 'Blue');
$('#current-theme').text('Blue');
alert("Blue");
}
if (theme == 'Green') {
localStorage.setItem('panelTheme', 'Green');
$('#current-theme').text('Green');
alert("Green");
}
}
(加载 html 时运行的代码)
function loadTheme() {
//Add this to body onload, gets the current theme. If panelTheme is empty, defaults to blue.
if (localStorage.getItem('panelTheme') == '') {
setTheme('Blue');
} else {
setTheme(localStorage.getItem('panelTheme'));
$('#current-theme').text(localStorage.getItem('panelTheme'));
}
}
它显示了警报,但实际上并没有改变任何东西。有人能告诉我正确的方向吗?