【Labs】グローバルナビをトップに固定するスティッキーナビ
こんにちは(・∀・)
今回はjQueryでグローバルナビゲーションをトップに固定するスティッキーナビをご紹介します。
レスポンシブデザインに対応しました。
グローバルナビをトップに固定するスティッキーナビ
Google Hosted LibrariesからjQuery 1.x snippetを<head>
内に読み込みます。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
HTML
<div id="nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Strategy</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Works</a></li>
<li><a href="#">Mail</a></li>
</ul>
<!--nav--></div>
CSS
#nav {
text-align: center;
}
#nav ul {
width: 300px;
overflow: hidden;
margin: 0 auto;
background: #eee;
}
#nav ul li {
float: left;
}
#nav ul li a {
font-size: 12px;
display: block;
width: 55px;
height: 40px;
margin: 0 0 0 1px;
padding: 5px 2px;
color: #fff;
background: #9fb7d4;
text-align: center;
}
#nav ul li a:hover {
color: #fff;
background: #afc6e2;
}
.content {
padding: 10px;
}
@media (min-width: 768px) {
#nav ul {
width: 600px;
}
#nav ul li a {
font-size: 14px;
width: 115px;
margin: 0 0 0 1px;
padding: 1px 2px;
}
.content {
width: 600px;
margin: 0 auto;
}
/* ** */}
JavaScript
$(function() {
var nav = $('#nav');
var navTop = nav.offset().top;
$(window).scroll(function () {
var winTop = $(this).scrollTop();
if (winTop >= navTop) {
nav.css({
'position': 'fixed',
'top':'0',
'background': 'white',
'z-index': '1000',
'width': '100%',
'text-align': 'center',
'left': '0',
'padding-bottom': '5px'
});
} else if (winTop <= navTop) {
nav.css({
'position': 'static',
'top': '',
'background': ''
});
}
});
});
Result
関連リンク
【Labs】ヘッダーをトップに固定してスクロールでアニメーション
【Labs】スクロールしても要素が固定するスティッキーサイドバー
【Labs】グローバルナビをトップに固定するスティッキーナビ+ドロップダウンメニュー