最近よくあるページがスクロールを始めるとヘッダーの位置が固定する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も追加しています。