html5でメニューなどスクロールを途中で固定表示させるために
jQueryではなくposition:sticky;を使うと簡単に実現できる。
ただし、position sticky はまだIE11など一部のブラウザでは使えない。
参考
Can I use position: sticky ?
Fixed Stickyスクリプトを使用すれば解決する。
Fixed Sticky- GitHub
使い方
position:stickyの場合
<body>
<nav class="sticky-menu">
<ul><li>メニュー1</li><li>メニュー2</li><li>メニュー3</li></ul>
</nav>
</body>
.sticky-menu {
position: -webkit-sticky;
position: -moz-sticky;
position: -ms-sticky;
position: -o-sticky;
position: sticky;
}
FixedStickyの場合
<head>
<script src="js/fixedsticky.js"></script>
<link href="css/fixedsticky.css" rel="stylesheet" type="text/css">
</head>
<body>
<nav id="scrollfix">
<ul><li>メニュー1</li><li>メニュー2</li><li>メニュー3</li></ul>
</nav>
<body>
.fixedsticky { top: 0; }
.fixedsticky-on {
width: 100%; /* 任意で中央位置を指定 */
}
/* FixedSticky */
$(function() {
$( '#scrollfix' ).fixedsticky();
});
まだIE11を使用しているユーザーがいるので当面はこれを使用することになるでしょう。

コメントを残す
コメントを投稿するにはログインしてください。