ページを開いた時にはヘッダーの下部にナビゲーションメニューがあって、スクロールした時にそのまま上がって表示されなくならずに、ページ上部に固定される様にしたい!って時の方法。
今回はjQueryとCSSで再現してみます。
まずはjQueryで動作を制御します。
$(window).scroll(function(){ $(window).scroll(function(){ var st = $(window).scrollTop(); if(st>100){ $('header nav').addClass("scrolloff") } else { $('header nav').removeClass("scrolloff") } });
このコードではスクロールした値を変数「st」に格納したうえで、if分を使い「st」の値が100以上であればnavタグにclass名scrolloffを追加し100以上でなければ、class名scrolloffを削除しています。
このコードでは出来るだけjQueryは簡単にして、CSSを上手に使うようにしています。
ここまでが上手くできていれば、ブラウザで100px以上スクロールすればnavタグにクラス名が付くので、クロームで検証してみましょう。
そしてCSSで動きに対してレイアウトを変えていきます。
header nav { position: absolute; left: 0; bottom: 0; } header nav.scrolloff { position: fixed; top: 0px; bottom: initial; z-index: 10; }
このCSSでは今回の動作用の最小限で記述しています。
後は良いようにしてね!