![](/img/trans.png)
[英]How to change link Navbar color while scrolling in React or Gatsby?
[英]Change link color on scrolling
我有这个菜单:
<div id = "menu" >
<a href = "index.html"> <img src = "images/logo.png" style = "padding-left: 5%; padding-top: 1%;"> </a>
<ul id = "lista">
<li style = "display: inline-block;"> <a href = "aboutus.html"> <padding left> SOBRE O INSTITUTO </a></li>
<li style = "display: inline-block;"> <a href = "pessoas.html"> PESSOAS</a> </li>
<li style = "display: inline-block;"> <a href = "universidadefour.html"> UNIVERSIDADE FOUR </a>
<ul>
<a href = "programaprolider.html"> <li> PROGRAMA PROLÍDER </li> </a>
<a href = "universidadefour.html#escolapolitica"> <li> ESCOLA DE POLÍTICA </li> </a>
<a href = "universidadefour.html#escolaempreendedorismo"> <li> ESCOLA DE EMPREENDEDORISMO </li> </a>
</ul> </li>
<li style = "display: inline-block;"> <a href = "comunidadefour.html"> <padding left> COMUNIDADE FOUR </a>
<ul>
<a href = "comunidadefour.html"> <li> A COMUNIDADE FOUR</li> </a>
<a href = "comunidade.html"> <li> FELLOWS </li> </a>
</ul>
</li>
<li style = "display: inline-block;"> <a href = "foursummit.html"> FOUR SUMMIT </a> </li>
<li style = "display: inline-block;"> <a href = "trabalheconosco.html"> VAGAS ABERTAS</a> </li>
<li style = "display: inline-block;"> <a href = "en-index.html"> EN </a> <span style = "color: white;"> |</span> <a href = "index.html"> BR </a> </li>
</ul>
</div>
这些是链接颜色的 CSS 规范:
#menu ul li a{
text-decoration: none;
line-height: 70px;
font-size: 14px;
padding: 4px 15px 4px 15px;
color: white;
}
此菜单没有任何指定的背景颜色。 但是,在用户滚动页面后,它会发生变化:
window.onscroll = function() {scrollFunction()};
function scrollFunction() {
if (document.body.scrollTop > 80 || document.documentElement.scrollTop > 80) {
document.getElementById("menu").style.backgroundColor = "#fff";
} else {
document.getElementById("menu").style.backgroundColor = "";
}
}
我想用这个菜单的链接 colors 做同样的事情。 我该怎么做,将链接 colors 从白色更改为 #333333?
谢谢!
使用document.querySelectorAll()
到 select 具有指定选择器的元素。 学到更多
在您的 function 中,在if(){}
块内,
var links = document.querySelectorAll("#lista a"); // selects all <a> inside #lista
links.forEach((link)=>link.style.color = "#333333"); // loop through each link and change the color
您可以使用 getElementsByTagName() 到具有指定标签的 select 元素,然后逐个更改链接的颜色。
if (document.body.scrollTop > 80 || document.documentElement.scrollTop > 80) {
var y = document.getElementsByTagName("a"); //Select all <a> tags
for (i = 0; i < y.length; i++) {
y[i].style.color = "#333333"; //Loop through links array and change the link color
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.