如何从li中删除活动类?

时间:2017-02-19 20:18:53

标签: javascript jquery

我的导航栏出了问题。我只需要从li中删除活动类,以便在滚动时将此类放到第二个li,这里是代码:

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

2 个答案:

答案 0 :(得分:2)

removeClass()#home 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>

工作演示

    {
     context: __dirname + "/app",
     entry: "./entry",
     output: {
         path: __dirname + "/dist",
         filename: "bundle.js"
     }
  }
{{1}}
{{1}}

答案 1 :(得分:1)

基于您认为不够详细的问题,让我们来看看您的代码&#34;

 $(window).scroll(function () {

    if ($(this).scrollTop() >= 650) {

        $('#about').addClass("active"); 
        //This is when you add class active, but you have to remove class active
        //from #about as well

    } else {

        $('#home').removeClass("active");
        //Same thing here, you have to remove class active from #about
    }

});

如果你不从另一个元素中删除活动类,在向上和向下滚动之后你最终会在两个元素中激活类。希望我能正确阅读你的问题并回答你的问题。