由于不使用 JavaScript 就无法为所有主要浏览器构建它,因此我使用 jQuery 制作了自己的解决方案:
分配position:relative
给您的置顶菜单。当它通过滚动到达浏览器窗口的顶部时,位置将变为positon:fixed
。
还要提供您的置顶菜单 top:0
,以确保它贴在浏览器窗口的顶部。
在这里您可以找到一个有效的JSFiddle 示例。
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%;
}