web関連
スクロール時にヘッダーにクラス追加
固定ヘッダーを使用する時のコードメモ
スクロールしたらヘッダーにクラスを振るコード
$(function () {
var headerBar = $('header');
$(window).scroll(function () {
hsize = $('header').height();
if ($(this).scrollTop() > hsize) {
headerBar.addClass('scroll');
} else {
headerBar.removeClass('scroll');
}
});
});
ヘッダーの高さを取得して、高さ以上の時はクラス「scroll」を追加それ以下の時はクラスを除去する記述。
スクロールしたら上からピョコってでてくる固定ヘッダー
$(function () {
var flag = false;
var headerBar = $('header');
$(window).scroll(function () {
hsize = $('header').height();
if ($(this).scrollTop() > hsize) {
if (flag == false) {
flag = true;
headerBar.addClass('scroll');
$('.scroll').css({'top': -hsize});
$('.scroll').animate({'top': '0px'}, 700);
}
} else {
if (flag == true) {
flag = false;
headerBar.removeClass('scroll');
}
}
});
});
さっきと違うのは、条件分岐が1つ増えたことくらい。
スクロール値がヘッダーの高さを超えたらcss「top」で上からアニメーションしながら降りてくるやつです。
flagの条件分岐がないと固定ヘッダーの挙動がスクロールするごとに点滅するので入れてます。
たぶんflagで真偽判定ないとスクロールするたびにcss「top」の部分が動いちゃうんだろうと…
PC時は固定ヘッダーあってもいいと思うが、スマホ時の固定ヘッダーっているんすかね?
ハンバーガーメニューまったく押されていない気がする…