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 !

TOP