Как я могу изменить цвет li, когда навигационная панель становится липкой? - PullRequest
0 голосов
/ 06 ноября 2019

Я хотел бы изменить цвет ссылок на моем Navbar, когда позиция становится липкой. ("links-color") - это класс css для замены существующих классов на li.

Код для позиции Sticky уже работает.

var customNav = document.querySelector(".navbarcontainer");
var mylinks = document.querySelectorAll(".nav-link");
var CustomSticky = customNav.offsetTop;

function myNav() {
  console.log("CustomSticy= " + CustomSticky);
  console.log("scrollY=" + window.scrollY);

  if (window.scrollY >= CustomSticky) {
    customNav.classList.add("sticky-navbar");
    mylinks.classlist.add("links-color")
  } else {
    customNav.classList.remove("sticky-navbar ");
    mylinks.classlist.remove("links-color")
  }
}
window.addEventListener('scroll', myNav);

Ответы [ 3 ]

0 голосов
/ 06 ноября 2019

Попробуйте это:

var $header = $('header');
    var $sticky = $header.before($header.clone().addClass("sticky"));
    $(window).on("scroll", function(){
        var scrollFromTop = $(window).scrollTop();
        $("body").toggleClass("scroll", (scrollFromTop > 100));
    });



header.sticky  ul li a {
    color: red;
}
body.scroll header.sticky {
    transform: translateY(0);
}
header.sticky {
    position: sticky;
    top: 0;
    left: 0;
    right: 0;
    background: rgba(0,0,0,0.85);
       z-index: 5;
}


<header>
      <nav class="nav-wrapper">
        <div class="logo">
          <a href="#">
            logo
          </a>
        </div>
        <ul class="menu">
          <li><a href="#home">Home</a></li>
          <li><a href="#work">My Work</a></li>
          <li><a href="#about">About</a></li>

        </ul>
      </nav>
          </header>
0 голосов
/ 06 ноября 2019

css

.sticky-navbar li {
color:red;
}

В этой ситуации, когда это происходит -> customNav.classList.add("sticky-navbar")

... тогда элементы li в sticky-navbar будут красного цвета

0 голосов
/ 06 ноября 2019

если ваши элементы dom выровнены - .navbarcontainer.sticky-navbar -> ul -> li -> a.link-color

, тогда .sticky-navbar li{ color: red }

...