2017-01-31 8 views
0

私は自分のサイト上にある一定のポイントに達すると機能を結びつけようとしている固定ナビゲーションバーを持っています。私は3つのサイトの前にこれを3回成功させましたが、私の人生ではこのサイトで作業することはできません。jqueryドキュメントスクロールしないスクロール

のjQuery:

function startchange() { 
$('#ajax-frame').imagesLoaded().done(function(instance) { 
    var scroll_start = 0; 
    var startchange = $('.startchange'); 
    var offset = startchange.offset(); 
    if (startchange.length) { 
     $(document).on('scroll', function() { 
      scroll_start = $(this).scrollTop(); 
      if (scroll_start > offset.top) { 
       $('nav').addClass('active'); 
       console.log("startchange working"); 
      } else { 
       $('nav').removeClass('active'); 
      }; 
     }); 
    } 
}); 
}; 

CSS:

body, 
html { 
height: 100% !important; 
width: 100%; 
margin: 0; 
padding: 0; 
overflow-x: hidden; 
} 
2日間完全に困惑コードここに... - 私は、ページが完全にロードされ知っているので、関数が用意ウィンドウに包まれて

この不満足な問題を理解していただきありがとうございます。

+0

'startchange'関数はどのように起動しますか?あなたは '$( '#ajax-frame')を持っていますか?imagesLoaded()。done'コールバック? –

+0

問題を再現するための最小限の例を実行できるように関連するコードをすべて投稿してください。 –

+0

コードを 'startChange'関数にラッピングしています。あなたはそれを呼びましたか? – mrlew

答えて

2

あなたのCSSからoverflow-x: hidden;を削除することが問題の解決に役立つ簡単なアプローチです。デモ:ここhttps://jsfiddle.net/mrlew/ce8me3qk/

しかしがを何が起こっているかです:あなたは、高さ100%にbodyhtmlを設定している、一方が他方に重なっている(htmlタグはあまりにもブロック要素です)。高さ:100%に設定していますが、実際にはスクロールする内容はbodyで、window/documentではありません。あなたはインナー1をスクロールしているhttps://jsfiddle.net/mrlew/ce8me3qk/8/注:

証明:overflowscrollに設定する場合があり、両方のスクロールバーを見てください。したがって、$("document").on('scroll', function() {$("body").on('scroll', function() {に変更すると、それも機能します。

htmlheight100%と設定しないでください。

+0

ありがとう!そのルールが他のすべての作業サイトに設定されているので、決して私には起こりませんでした。 – pjldesign

+0

@ pjldesignよろしくお願いします。私は説明を編集しました – mrlew

関連する問題