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を使用しているユーザーがいるので当面はこれを使用することになるでしょう。
コメントを残す
コメントを投稿するにはログインしてください。