Измените цвет всех тегов <a>на <li>с помощью Javascript - PullRequest
0 голосов
/ 02 мая 2020

На данный момент я могу изменить только первый тег в моем списке с помощью Javascript. При прокрутке вверх все теги a в списке должны становиться черными, но, похоже, затрагивается только первый тег 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'

    }
}

1 Ответ

0 голосов
/ 02 мая 2020

Исправлен ваш код, как предлагается в комментариях. 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...