简体   繁体   English

通过 jQuery 添加类不适用于 Bootstrap

[英]Adding classes by jQuery doesn't work with Bootstrap

I'm trying to add and remove classes depending on pageYOffset position of the header, and I completely don't know why my code is not working我正在尝试根据页眉的 pageYOffset 位置添加和删除类,但我完全不知道为什么我的代码不起作用

<nav class="navbar navbar-expand-md transparent py-1 fixed-top" id="header">
  <div class="container">
    <a class="navbar-brand">Brand</a>
    <button
      type="button"
      class="navbar-toggler"
      data-toggle="collapse"
      data-target="#navbarCollapse"
    >
      <span class="navbar-toggler-icon"></span>
    </button>
    <div
      class="collapse navbar-collapse"
      id="navbarCollapse"
      aria-controls="navbarNav"
      aria-expanded="false"
      aria-label="Toggle navigation"
    >
      <ul class="navbar-nav ml-auto text-white">
        <li class="nav-item">
          <a class="nav-link">Home</a>
        </li>
        <li class="nav-item">
          <a class="nav-link">Home</a>
        </li>
        <li class="nav-item">
          <a class="nav-link">Home</a>
        </li>
        <li class="nav-item">
          <a class="nav-link">Home</a>
        </li>
      </ul>
    </div>
  </div>
</nav>

CSS: CSS:

 .navbar.transparent.navbar-inverse .navbar-inner {background: transparent !important; }

jQuery: jQuery:

let pagetop = $('#header');
 let yPos = window.pageYOffset;

  if(yPos > 200) {
    pagetop.removeClass('transparent').addClass('navbar-light bg-light');
  } else {
    pagetop.removeClass('navbar-light bg-light').addClass('transparent');

  }
});

My point is to change header color to white when scrolling down, and to be transparent when value of the variable yPos is less than 200.我的观点是在向下滚动时将标题颜色更改为白色,并在变量 yPos 的值小于 200 时将其更改为透明。

let pagetop = $('#header');
let yPos = window.pageYOffset;

$(window).scroll(function() {
  let yPos = window.pageYOffset;
  console.log(yPos);
  if(yPos > 200) {
      pagetop.removeClass('transparent').addClass('navbar-light bg-light');
  } else {
      pagetop.removeClass('navbar-light bg-light').addClass('transparent');
  }
});

You wrote your code so it only execute when the page is loaded not when you scrolled.您编写了代码,因此它仅在页面加载时执行,而不是在滚动时执行。

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

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