简体   繁体   English

滚动时更改链接颜色

[英]Change link color on scrolling

I have this menu:我有这个菜单:

<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>

And these are the CSS specifications for the color of the links:这些是链接颜色的 CSS 规范:

#menu ul li a{
    text-decoration: none;
    line-height: 70px;
    font-size: 14px;
    padding: 4px 15px 4px 15px;
    color: white;
}

This menu doesn't have any specified background color.此菜单没有任何指定的背景颜色。 However, after the user scrolls around the page, it changes:但是,在用户滚动页面后,它会发生变化:

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 = "";
  }
}

I want to do the same thing with this menu's link colors.我想用这个菜单的链接 colors 做同样的事情。 How can I do it, change the links colors from white to #333333?我该怎么做,将链接 colors 从白色更改为 #333333?

Thanks!谢谢!

use document.querySelectorAll() to select the elements with the specified selector.使用document.querySelectorAll()到 select 具有指定选择器的元素。 Learn More 学到更多

Inside your function, within the if(){} block,在您的 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

You can use getElementsByTagName() to select elements with specified tag and then change color of link one by one.您可以使用 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM