最近よくあるページがスクロールを始めるとヘッダーの位置が固定するjQueryのスクリプトです。
よく使うのでメモがわりに掲載します。
基本は簡単なので覚えておけばいろいろ応用できるかと思います。
仕組みは、<header>の高さ分(デモでは80px)スクロールすると<nav>にfixedクラスが追加されることで固定されます。
header {
width: 100%;
height: 80px;
color: #333;
background: #EEE;
}
nav {
width: 100%;
color: #FFF;
background: #333;
}
nav.fixed {
position: fixed;
left: 0;
top: 0;
}
$(function() {
//ロード or スクロールされると実行
$(window).on('load scroll', function(){
//ヘッダーの高さ分(80px)スクロールするとfixedクラスを追加
if ($(window).scrollTop() > 80) {
$('nav').addClass('fixed');
} else {
//80px以下だとfixedクラスを削除
$('nav').removeClass('fixed');
}
});
});
scrollのみだと、スクロールした状態で更新ボタンを押すと固定されないので、loadも追加しています。