JavaScript を使用せずにすべての主要なブラウザーでこれを構築する方法がないため、jQuery を使用して独自のソリューションを作成しました。
sticky-top-menu に割り当てposition:relative
ます。スクロールしてブラウザ ウィンドウの上部に到達すると、位置がに変更されます。positon:fixed
また、sticky-top-menu top:0
を指定して、ブラウザー ウィンドウの上部に固定されるようにします。
ここに、実際に動作するJSFiddle Exampleがあります。
HTML
<header>I'm the Header</header>
<div class="sticky-top-menu">
<nav>
<a href="#">Page 1</a>
<a href="#">Page 2</a>
</nav>
</div>
<div class="content">
<p>Some content...</p>
</div>
jQuery
$(window).scroll(function () {
var headerTop = $("header").offset().top + $("header").outerHeight();
if ($(window).scrollTop() > headerTop) {
//when the header reaches the top of the window change position to fixed
$(".sticky-top-menu").css("position", "fixed");
} else {
//put position back to relative
$(".sticky-top-menu").css("position", "relative");
}
});
CSS
.sticky-top-menu {
position:relative;
top: 0px;
width: 100%;
}