我的导航栏有问题。我只需要从li中删除​​活动类,以在滚动时将该类放到第二个li中,则代码如下:

$(window).scroll(function () {
  if ($(this).scrollTop() >= 650) {
    $('#about').addClass("active");
  } else {
    $('#home').removeClass("active");
  }
});

最佳答案

您可以将removeClass()用于#home id,而将addClass()用于#about元素,反之亦然。因此,以下代码将起作用:

$(window).scroll(function() {
    if ($(this).scrollTop() >= 650) {
        $('#about').addClass("active");
        $('#home').removeClass("active");
    } else {
        $('#about').removeClass("active");
        $('#home').addClass("active");
    }
});


工作示范


$(window).scroll(function () {
  if ($(this).scrollTop() >= 650) {
    $('#about').addClass("active");
    $('#home').removeClass("active");
  } else {
  	$('#about').removeClass("active");
    $('#home').addClass("active");
  }
});

.fixed{
  position : fixed;
  top: 0;
  left:0;
  right:0;
}
.long{
  height : 5000px;
}
.active{
  background : red;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="fixed">
  <div id="home" class="active">Home</div>
  <div id="about">About</div>
</div>
<div class="long"></div>

09-27 21:45