私は次のコードを持っています:
function fixDiv() {
var $div = $("#navwrap");
if ($(window).scrollTop() > $div.data("top")) {
$('#navwrap').css({'position': 'fixed', 'top': '0', 'width': '100%'});
}
else {
$('#navwrap').css({'position': 'static', 'top': 'auto', 'width': '100%'});
}
}
$("#navwrap").data("top", $("#navwrap").offset().top);
// set original position on load
$(window).scroll(fixDiv);
<div class="nav" id="navwrap">
<style type="text/css">
.nav
{
width: 100%;
margin: 0 auto;
background: black;
height: 40px;
}
</style>
<ul>
<li id="home_link"><a href="#"><img src="images/nav_logo.jpg" /></a></li>
<li><a href="#">Services & Pricing</a></li>
<li><a href="#">About us</a></li>
<li><a href="#">Blog</a></li>
</ul>
</div>
これが何をするかはhttp://creuna.comでの効果に似たもので、ナビゲーション バーがその位置を過ぎてスクロールした後、一番上に固定されます。私が抱えている問題は次のとおりです。
ナビゲーション バーがスクロールされると、その位置が静的から「固定」に変わります。これにより、ナビゲーション バーの高さのサイズがジャンプします。ジャンプを防ぎながら、#navwrap div の高さを 40px に保つにはどうすればよいですか?
この質問が少し具体的であると思われる場合は申し訳ありません.