2016-11-04 16 views
0

Safari(ver:9.1)のように、jQueryもバニラJavaScriptもスクロールイベントをキャッチしません。

私の目標はスクロール位置をキャッチし、50px未満の場合は、クラスを追加してナビゲーションバーを修正し、そうでなければそのクラスを削除します。

下記のコードスニペットは、Chrome、Firefox、IEでは動作しますが、Safariでは動作しません。

$(window).on('scroll', function(){ 
    if($(window).scrollTop()>50){ 
     $('.navbar').addClass('nav-fixed'); 
    } 
    else { 
     $('.navbar').removeClass('nav-fixed'); 
    } 
}); 

答えて

0

Safari v。10.0.1でも同じことが起こっています。

window.addEventListener('scroll',function() { 
    // Nothing happens here in Safari. Scroll event is never fired. 
}); 

EDIT:問題を修正したCSSで問題が発生しました。私は私のCSSから削除することを忘れたスクロールスナップポイント(私は必要ない)のためのいくつかの古いものを持っていた。私のコンテンツを囲むdiv要素に私は

height: 100vh; 

を持っていたので、それは私が代わりに私のdivの内側にスクロールされるので、ウィンドウのスクロールイベントは、解雇されないことは理にかなっています。

関連する問題