更改javascript中特定元素的配色方案?

瓦·汉森

我有一个脚本来检查它是哪个月并尝试根据季节更改背景图像和导航栏颜色。

我有脚本成功找到月份并更改背景,但我什至不知道从哪里开始更改导航栏。我试过 getElementByClassName 并尝试直接指向元素(尽管我什至不知道如何真正做到这一点),但似乎都不起作用。

我试图修改的 css 元素(所有“backgroundColor”)是:

ul
li a
li a:hover:not(.active)

.active

在编码方面,我真的是一个初学者(这解释了为什么我使用 html 列表构建我的导航栏),尤其是 javascript,而我对文档对象模型的阅读只是让我迷失了方向。任何帮助表示赞赏!

编辑:根据要求,这里是我试图修改的有问题的代码和试图修改它的脚本

html:

<ul>
    <li><a href="index.html">home</a></li>
    <li><a href="music.html">music</a></li>
    <li><a href="art.html">art</a></li>
    <li><a href="games.html">games</a></li>
    <li><a href="hobbies.html">other hobbies</a></li>
    <li><a class=active href="bio.html">bio</a></li>
    <li><a href="links.html">links</a></li>
    <li style="float:right"><a class=active href=#top>top</a></li>
</ul>

js:

var d = new Date();
var m = d.getMonth();
var b = "";
var c1 = "";
var c2 = "";
var c3 = "";

if (m<=1 || m==11) {
    b = "webbgw.png";
    c1 = "#b5e0fe";
    c2 = "#a5dafe";
    c3 = "#88cefd";
}
else if (m>=2 && m<=4) {
    b = "webbgsp.png";
    c1 = "#ade8ad";
    c2 = "#9be49b";
    c3 = "#7adb7a";
}
else if (m>=5 && m<=7) {
    b = "webbgsm.png";
    c1 = "#ff90bd";
    c2 = "#ff72a8";
    c3 = "#ff9382";
}
else if (m>=8 && m<=10) {
    b = "webbga.png";
    c1 = "#ffb420";
    c2 = "#efa507";
    c3 = "#ca8802";
}
else {
    b = "webbgerr.png";
    c1 = "#b9b9b9";
    c2 = "#a9a9a9";
    c3 = "#8c8c8c";
}

document.body.background = b;
document.ul.style.backgroundColor = c1;
document.li.a.hover.not(active).backgroundColor = c2;
document.getElementByClassName("active").backgroundColor = c3;

就像我说的,我什至不知道从哪里开始将脚本指向我想要更改的内容,所以我基本上 100% 确定最后 3 个函数是错误的。我只是写了一些我理解的东西,编辑并没有因为我写作而对我大喊大叫。

雅各布

最简单的方法是将尽可能多的代码放在 CSS 文件中,然后只更改一件事,例如在 中的 CSS 类<body>以反映季节:

const season = 'winter'; // or whatever logic you have
document.querySelector('body').classList.add('season-' + season);

现在,在 CSS 文件中,您可以使用该父选择器为所有相关祖先添加颜色:

.winter ul,
.winter li a,
.winter li a:hover:not(.active) {
  background-color: silver;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章