导航栏变粘时如何更改li的颜色?

当位置变粘时,我想更改导航栏中链接的颜色。 (“ links-color”)是一个CSS类,用于替换li上的现有类。

粘性位置代码已经正常工作。

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);
yanglu06550132 回答:导航栏变粘时如何更改li的颜色?

如果dom元素对齐- .navbarcontainer.sticky-navbar -> ul -> li -> a.link-color

然后 .sticky-navbar li{ color: red }

,

尝试一下:

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

css

.sticky-navbar li {
color:red;
}

在这种情况下,发生这种情况时-> customNav.classList.add("sticky-navbar")

...比li中的sticky-navbar元素会变成红色

本文链接:https://www.f2er.com/3153196.html

大家都在问