固定された要素はDOM内にスペースをとらないという問題があります。だから、ここで起こっているのはあなたのヘッダがスペースを取って、ページをスクロールし、position:fixed
というヘッダを設定して、それ以上スペースを取らないようにして、すべての要素が上に移動し、スクロールバーが消えるということです。
この動作を防止するには、クラスを変更するときに文書に「欠けている高さ」を追加する必要があります。たとえば、プレースホルダーdivを追加する場合は、StickyKitによって使用されるコミュニケーション技法。あなたがここに基本的なコードを見ることができます
:もちろんhttps://jsfiddle.net/jaL765t1/
var flag = false;
$(window).scroll(function(e){
var passed_point = $(this).scrollTop() > $('#header').height()+25;
if(passed_point && !flag){
var surrogate = $('<div>', {
'class' : 'js-surrogate',
css : {
height : $('#header').height()
}
});
$('#header').before(surrogate);
$('#main').addClass('fixed');
flag=true;
}else if(!passed_point && flag){
$('#main').removeClass('fixed');
$('#header').prev('.js-surrogate').remove();
flag=false;
}
});
を、このコードは良いはありませんが、簡単に出発点としてそれを使用することができます。
あなたのコードを共有するためにJSFiddleを投稿してください。 –