0

ヘッダーをスクロールした後に固定ナビゲーションが表示されるサイトを設計しています。

このスクリプトを使用してこれを機能させました:

$(window).load(function(){
// Get the headers position from the top of the page, plus its own height
var startY = $('#header').position().top + $('#header').outerHeight();

$(window).scroll(function(){
    checkY();
 });

function checkY(){
    if( $(window).scrollTop() > startY ){
        $('#navbar').slideDown();
    }else{
        $('#navbar').slideUp();
    }
}

 // Do this on load just in case the user starts half way down the page
 checkY();
 });//]]>  

問題は、スクリプトが読み込み時にヘッダーの高さを読み取ることですが、ヘッダーの高さがビューポートの 100% であるため、ウィンドウのサイズを変更すると、ナビゲーションが遅すぎるか早すぎるように表示されます。

たとえば、高さ 670 ピクセルのビューポートでページをロードし、サイズを 400 ピクセルのビューポートに縮小します。te nav が 670px の後にしか表示されないにもかかわらず、ヘッダーが 400px の高さまで縮小します

これを修正する方法はありますか?ありがとう

4

2 に答える 2