スクロールしたら途中からヘッダーを固定する方法を紹介します。
まず、jQueryを導入してからお使いください。
↓以下が実際のソースサンプルです。
▼html
<nav id="global_nav">
<div class="wrapper">
<ul>
<li class="item"><a href="#menu1">メニュー1</a></li>
<li class="item"><a href="#menu2">メニュー2</a></li>
<li class="item"><a href="#menu3">メニュー3</a></li>
<li class="item"><a href="#menu4">メニュー4</a></li>
<li class="item"><a href="#menu5">メニュー5</a></li>
</ul>
</div>
</nav>
▼css ※一部抜粋しています
#global_nav {
background: #fff;
border-bottom: 1px solid #16244e;
border-top: 1px solid #16244e;
width: 100%;
}
#global_nav.fixed {
left: 0;
position: fixed;
top: 0;
}
.wrapper {
margin: 0 auto;
max-width: 100%;
padding: 0;
width: 768px;
}
#global_nav ul {
display: flex;
list-style: none;
margin: 0;
padding: 0;
}
.item {
border-left: 1px solid #fff;
width: 20%;
}
.item:last-child {
border-right: 1px solid #fff;
margin-right: 0;
}
.item a {
background: #16244e;
color: #fff;
display: block;
line-height: 50px;
text-align: center;
text-decoration: none;
}
▼JavaScript
var nav_pos = $("#global_nav").offset().top;
var nav_height = $("#global_nav").outerHeight();
$(window).scroll(function () {
if ($(this).scrollTop() > nav_pos) {
$("body").css("padding-top", nav_height);
$("#global_nav").addClass("fixed");
} else {
$("body").css("padding-top", 0);
$("#global_nav").removeClass("fixed");
}
});
今回の記事やデモページ作成にあたり
途中からヘッダー固定にする方法!画面上部までスクロールされたら固定するさんのページを参考にさせていただきました。
ありがとうございます。
