2017-09-25 5 views
0

私はこの関数を数値カウンタに使用し、画面上にカウントを開始すると動作しますが、スクロールとカウンタが開始し、ナビゲーションは固定されず、画面上にnavが表示されます。私はスクロールのためのこのコードを消去すると、スティッキーナビゲーションはうまく動作します。isScrolledIntoView関数は、ナビゲーションバーの固定クラスを削除しませんでした

function isScrolledIntoView(elem) { 
     var $elem = $(elem); 
     var $window = $(window); 

     var docViewTop = $window.scrollTop(); 
     var docViewBottom = docViewTop + $window.height(); 

     var elemTop = $elem.offset().top; 
     var elemBottom = elemTop + $elem.height(); 

     return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); 
    } 
    $(window).on('scroll', function() { 
     if (isScrolledIntoView('#counter')) { 
      $('.number-count').countTo(); 
      $(window).off('scroll'); 
     } 
    }); 

そして、これはスティッキーナビゲーションのためのjQueryコード

$(document).ready(function(){ 

      var navOffset = $(".nav").offset().top; 
       $(".nav").wrap('<div class="nav-placeholder"></div>'); 
       $(".nav-placeholder").height($(".nav").outerHeight()); 

      $(window).scroll(function(){ 
      var scrollPos = $(window).scrollTop(); 

      if (scrollPos >= navOffset) { 
       $(".nav").addClass("fixed"); 
      } else { 
        $(".nav").removeClass("fixed"); 
       } 
      }); 
     }); 

、ここであなたが問題を見ることのために、私はうまく

https://youtu.be/_aX0dWl6ZfQ

それを説明しなかったのならばユーチューブリンクあり

答えて

1

私が正しく理解していれば、あなたの$(window).off('scroll')ラインは、それが中に含まれているハンドラを削除する必要がありハンドラ内でイベントを受け入れ、.offにそれを渡してみてください。

$(window).on('scroll', function(e) { 
    if (isScrolledIntoView('#counter')) { 
     $('.number-count').countTo(); 
     $(window).off(e); 
    } 
}); 

また、あなたのスティッキーヘッダー

のハンドラを削除しないような方法
+0

ありがとうございました。私はまだjavascriptを学んでいるので、時には私は少しでも間違いを見ることができません。 :) –

+0

私は助けてくれるとうれしいです。受け入れられたとして回答に印を付けるようにしてください。そうしないと、人々はあなたの質問に答えなくなります;) – Trey

+0

ありがとう!私はそれについて知りませんでした....今受け入れられて.. :) –

関連する問題