2017-01-13 8 views
1

そのリンク先ページ。すべてのナビゲーションリンクが同じページのセクションを表します。jqueryを使ってブートストラップのスクロールでアクティブなクラスを変更するには?

私のナビゲーションバーのはjqueryの

 $(document).ready(function() { 
    $('.nav li a').click(function(e) { 

     $('.nav li').removeClass('active'); 

     var $parent = $(this).parent(); 
     if (!$parent.hasClass('active')) { 
      $parent.addClass('active'); 
     } 
    }); 
}); 

を使用して、アクティブなクラスを変更クリックで

<nav class="navbar navbar-default navbar-fixed-top"> 
     <div class="container-fluid"> 
      <!-- Brand and toggle get grouped for better mobile display --> 
      <div class="navbar-header"> 
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> 
       <span class="sr-only">Toggle navigation</span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
      </button> 
      <a class="navbar-brand" href="#">Brand Name</a> 
      </div> 

      <!-- Collect the nav links, forms, and other content for toggling --> 
      <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">    
      <ul class="nav navbar-nav navbar-right"> 
       <li class="active"><a href="#home">Home</a></li> 
       <li><a href="#about">About Us</a></li> 
       <li><a href="#choose">Why This Company</a></li> 
       <li><a href="#mission">Mission and Vision</a></li> 
       <li><a href="#services">Services</a></li> 
       <li><a href="#">How it Works</a></li> 
       <li><a href="#destination">Destination</a></li> 
       <li><a href="#associate">Associate Partners</a></li>    
       <li><a href="#contact">Contact Us</a></li> 
      </ul> 
      </div><!-- /.navbar-collapse --> 
     </div><!-- /.container-fluid --> 
     </nav> 

私はスクロールでそれを行うことができないのです。各ナビゲーションリンクは、同じページのセクションを表します。

ありがとうございました。

+0

使用jQueryのスクロールイベント、https://api.jquery.com/scroll/ –

+0

は、スクロールイベントとしなければなりませんか?あなたの問題を精緻化できますか? – dreamweiver

答えて

0
<div id="about"></div> 
... 

$(window).on('scroll', function(event){ 
    var scrollPos = $(document).scrollTop(); 
    $(".nav li a").each(function() { 
    var currLink = $(this); 
    var refElement = $(currLink.attr("href")); 

    if (refElement.position().top <= scrollPos && refElement.position().top + refElement.height() > scrollPos) { 
     currLink.parent().addClass("active").siblings().removeClass("active"); 
     return; 
    } 
    else{ 
     currLink.parent().removeClass("active"); 
    } 
    }) 
}) 
ハンドラをクリックして何
+0

私はクリックではなくスクロールを求めています。私はすでに私の質問でクリックの答えを与えた。 – Phoenix

+0

申し訳ありませんが、コードを書き直しました) –

+0

が動作しません。それは何もしない。 – Phoenix

関連する問題