毎度おなじみ、[怖くないJavaScript + jQuery]シリーズです。
今回は、スクロールに合わせてついてくるメニューを作ります。
デモ
実際に動かしてみるとこんな感じになります。フレーム内を縦にスクロールすると、ナビゲーションが途中から上部に固定になります。
デモを別ページで開く
ファイル一式ダウンロード
ナビゲーション要素のid、切り替えるスクロール位置の高さがそれぞれ変更できます。
そのままでもお使い頂くこともできますが、下記に動作の解説です。
Step1:まず下準備
こちらはいつもと同じですね。まず必要なファイルを読み込みます。headerの中に、jQueryと、自分で作ったjavascriptのファイル(今回は stalker.js とします)を読み込みます。
<script src="common/js/jquery.js" type="text/javascript"></script>
<script src="common/js/stalker.js" type="text/javascript"></script>
</head>
Step2:次にHTMLの準備
今回は固定させたいdiv要素にid=”mainNavi“を振ります。仕組みを簡単に説明すると、一定の位置までスクロールした時にmainNaviにclass=”active“が付与され、画面上部に固定されます。なので、activeが動作した際のcss position:fixed;を設定しておく必要があります(後述します)
スクロールが進むと…
スクロールを戻すと元通りに
Step3:次にCSSの準備
前述の通り、一定の位置までスクロールした時にmainNaviにclass=”active“が付与され、画面上部に固定されます。固定された時のCSSを設定してください。Step4:jsを書き込む
headerで読み込んでいる stalker.js の初期設定をHTMLソースに合わせて変更してください。色の違う箇所を変更してくださいね。//***********************************
// 初期設定
// ▽メインナビゲーションのid
var navigation = $(‘#mainNavi‘)
// ▽イベントが発生するスクロールの位置(px)
var borderLine = 387
//***********************************
jsの解説
//***********************************
// 初期設定
// ▽メインナビゲーションのid
var navigation = $(‘#mainNavi‘)
// ▽イベントが発生するスクロールの位置(px)
var borderLine = 387
//***********************************
//▼画面を読み込んだ時の処理
$(document).ready(function(){
//▼画面をスクロールした時の処理
$(window).scroll(function(){
//▼hantei
function hantei(){
});