JS:JavaScriptでスライドダウンするヘッダー×コメディ

コント:ギャルは歌でスライドダウンを流行らせる
※コードは下部へ

ねーねー、アイ
どしたん?


サイトでさ、見ててスクロールちょっと上にしただけで降りてくるメニューあるやん?
あー、上までスルスル上がるんじゃなくてね?


そそ、あれさバズらそと思って
うん


やっぱ、歌にするんがええんかな、と思ったんよ
あー「歌ってみた」的なのもあるしなー



そー、こんなんどうかな?
あ、作ったん?へー、どんなん?


♪ 下見た瞬間終わったわ ♪
ん?


♪ 他ページ見たいのにメニューない ♪
あー、ちょっと懐いね、その曲 笑


♪ 行き過ぎてお亡くなり
まー、あるけどな絶対


♪ 定期、定期、定期的にスライドダウン
いや、そこは定期的じゃなくても、、、笑


♪ ずっとあってもウザいかな、と思いました
あ、2番もあるん


♪ 画面広過ぎても困らない
まぁねー


♪ 欲しい時だけでいいかな、と思いました
うん、まぁね 笑


♪ いやいや、とfixしたら、オモ、オモ、オモ、オモ、オモロない
苦笑 ねーそろそろコード行かん?

コード解説編

♪ 下見た瞬間終わらすわ
CSSで画面の上にねー

CSS
#wrapper{
position: fixed;
width: 100%;
z-index: 10;
top: 0;
transition: 0.5s;
background: #fff;
}
CSSでの鍵は position: fixed;にしておくことです。動作に関してはJavascriptで行うので、その際の表示もトップに常に来るようにfixedでtop:0;にしておきます。後は動きのスムーズさをつけるためのtransitionを加えています。前面に来るようにz-indexも加えておきましょう。

♪ 上あげると元通り
そこはscriptでね

JavaScript
let start_position = 0, //初期位置0でヘッダーを規定
window_position,
$window = $(window),
$header = $(‘#wrapper’);
// スクロールイベントを設定
$window.on( ‘scroll’ , function(){
// スクロール量の取得
window_position = $(this).scrollTop();
// スクロール量が初期位置より小さければ,
// 上にスクロールしているのでヘッダーを出現
if (window_position <= start_position) {
$header.css(‘top’,’0′);
} else {
$header.css(‘top’,’-230px’);
}
// 現在位置を取得
start_position = window_position;
});
// 途中でロードされても良スクロールイベントを発生
$window.trigger(‘scroll’);
JavaScriptでは、まずヘッダーの初期位置を取得させ、スクロール量をウォッチ。スクロールが初期値より低ければ、cssをtopへと操作します。その他の場合には上に消し去るように-の値を設定しておきます。ここはヘッダーのheight以上で良きところにしておいてください。

♪ 定期、定期、定期的にスライドダウン
いや、要る時だけでいいっしょ 笑


♪ メニューが上下、大乱闘
あー


Share Me !