繁体   English   中英

更改所有<a>标签颜色</a><li><a>与 Javascript</a></li>

[英]Change all <a> tags color in a <li> with Javascript

目前,我只能使用 Javascript 更改列表中的第一个标签。 当向上滚动列表中的所有a标签时,应该会变黑,但似乎只有列表中的第一个 a标签会受到影响。 最终结果应该是向上滚动标签(字母)时变为黑色,向下滚动时它们变为白色,背景为黑色

HTML

<header>
  <nav>
    <div class="menu-container" id="nav-menu">
      <!-- <a href="Home.html"><img class="logo" src="pics/logo.png"  width="50" height="50" alt="logo"></a> -->
      <div id="nav-class" class="aw-burger-open">
      <ul class="menu-navigation">
        <li><a class="sec section-home" href="#">Home</a></li>
        <li><a class="sec section-contact" href="#">Productivity Hacks</a></li>
        <li><a class="sec section-podcasts" href="#">Podcasts</a></li>
        <li><a class="sec section-books" href="#">Books</a></li>
        <li><a class="sec section-latest-posts" href="#">Latest Posts</a></li>
        <li><a class="sec section-contact" href="#">Get in touch</a></li>
        <li><a class="sec section-newsletter" href="#">Subscribe</a></li>
      </ul>
    </div>
      </div>
      </nav>

CSS

.menu-container img{
  margin-top: 20px;
  margin-left: 20px;
}
header nav {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  width: 100%;
}
.menu-container{
  display: flex;
  flex-direction: row;
  justify-content: center;
}
.menu-navigation {
  display: flex;
  list-style-type: none;
  padding-bottom: 10px;
}

#nav-class{
  padding-top: 30px;
}
#nav-class > ul > li:nth-child(7) > a{
  border: 2px solid white;
  border-radius: 18px;
  padding:7px;
}

#nav-class > ul > li:nth-child(7) > a:hover{
  background-color: white;
  color:black;
}

header nav ul.menu-navigation li a {
  padding: 0 16px;
  font-size: 14px;
}



a:active {
  text-decoration:none;
}

.menu-container a:hover{
  color:#d5c8bb ;
}

a:link{
    text-decoration:none;
    color:white;
}

JS

var nav = document.getElementById('nav-menu')
var letters = document.querySelector('#nav-class > ul > li > a')

window.onscroll = function(){
    if(window.pageYOffset > 100){
        nav.style.background = 'black'
        letters.style.color = 'white'
    } else{
        nav.style.background = '#eaebeb'
        letters.style.color = 'black'

    }
}

按照评论中的建议,修复了您的代码。 querySelectorAll而不是querySelector将解决您的问题。 还需要遍历.nav-class中的所有节点子节点。

 var nav = document.getElementById("nav-menu"); var letters = document.querySelectorAll("#nav-class > ul > li > a"); window.onscroll = function () { if (window.pageYOffset > 100) { nav.style.background = "black"; letters.forEach((letter) => (letter.style.color = "white")); } else { nav.style.background = "#eaebeb"; letters.forEach((letter) => (letter.style.color = "black")); } };
 .menu-container img { margin-top: 20px; margin-left: 20px; } header nav { position: fixed; top: 0; left: 0; z-index: 1000; width: 100%; }.menu-container { display: flex; flex-direction: row; justify-content: center; }.menu-navigation { display: flex; list-style-type: none; padding-bottom: 10px; } #nav-class { padding-top: 30px; } #nav-class > ul > li:nth-child(7) > a { border: 2px solid white; border-radius: 18px; padding: 7px; } #nav-class > ul > li:nth-child(7) > a:hover { background-color: white; color: black; } header nav ul.menu-navigation li a { padding: 0 16px; font-size: 14px; } a:active { text-decoration: none; }.menu-container a:hover { color: #d5c8bb; } a:link { text-decoration: none; color: white; } body { min-height: 1000px; }
 <header> <nav> <div class="menu-container" id="nav-menu"> <.-- <a href="Home.html"><img class="logo" src="pics/logo.png" width="50" height="50" alt="logo"></a> --> <div id="nav-class" class="aw-burger-open"> <ul class="menu-navigation"> <li><a class="sec section-home" href="#">Home</a></li> <li><a class="sec section-contact" href="#">Productivity Hacks</a></li> <li><a class="sec section-podcasts" href="#">Podcasts</a></li> <li><a class="sec section-books" href="#">Books</a></li> <li><a class="sec section-latest-posts" href="#">Latest Posts</a></li> <li><a class="sec section-contact" href="#">Get in touch</a></li> <li><a class="sec section-newsletter" href="#">Subscribe</a></li> </ul> </div> </div> </nav>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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