今回、ヘッダー下に作ったサブヘッダーのみをスクロールで固定する方法を簡単にご紹介します。
先に以下、サンプルになります。
See the Pen jquery3 scroll sub header fix by Taiki Takefushi (@cruw) on CodePen.
作成方法はとても簡単で、まず、CSSでサブヘッダーが固定したときのスタイルを定義します。
#サブナビID.is-fixed {
position: fixed;
top: 0;
left: 0;
}スクロールに応じてClassを追加するのでサブヘッダーIDにプラスしてClass名「is-fixed」を付けておいてください。
そして、以下のようなJSを定義します。(Jquery3を予め読み込んでおいてください)
var $nav = $('#サブナビID');
var navHeight = $nav.outerHeight();
var body = $('body');
function navFixed(){
var scroll = $(window).scrollTop();
if (scroll > navHeight){
$nav.addClass('is-fixed');
body.css('padding-top', navHeight);
}else{
$nav.removeClass('is-fixed');
body.css('padding-top', '0');
}
}
$(function(){
$(window).scroll(function (){
navFixed();
});
$('body').on('touchmove', function() {
navFixed();
});
});
以上、たったこれだけでサブヘッダー固定が実装できたかと思います。
ぜひお試しあれ!





