ホームページ作成

ページ途中のメニューバーをスクロール後に上端に固定(2ページ目)

ページを下方向にスクロールしたとき、「ヘッダ部分は消えるのに、メニューバーはウインドウ上部に張り付いて固定される」というデザインの作り方をご紹介。最初から上端にあるものを固定するのではなく、「最初は上端にはない要素(メニューなど)」を「スクロールによって上端に到達した時点で固定する」方法を解説。jQueryプラグインのjquery.sticky.jsを使うと、ほんの数行の追記だけで簡単に作れます。

西村 文宏

執筆者:西村 文宏

ホームページ作成ガイド

下方向へスクロールすると画面上端に固定されるメニューバーを作成

それでは、jQueryプラグイン「jquery.sticky.js」スクリプトを使って、下方向へスクロールすると上端に固定されるメニューバーを作ってみましょう。

実現に必要な記述は2点だけ
メニューにid名を加えて、スクリプトにもそのid名を指定

メニューにid名を加えて、スクリプトにもそのid名を指定

方法はとても簡単です。大まかに言えば、以下の2点を記述するだけで実現できます。記述総量は、ほんの数行です。

1. 固定したいメニューバーに、任意のid名を付加しておく。
2. スクリプト「jquery.sticky.js」に、そのid名を実行対象として指定する。


 
実現のための準備は、事前にスクリプトを2つ読み込んでおくだけ
スクリプトを2つ読み込むだけ

スクリプトを2つ読み込むだけ

上記のための準備として、ウェブページ内で下記A・Bのスクリプト2つを読み込んでおく必要があります。ただ読み込むだけで良く、修正などは不要ですから簡単です。

A. jQuery本体を読み込む。
B. jQueryプラグイン「jquery.sticky.js」を読み込む。


 
以下に、A→B→1→2の順で記述内容を解説いたします。


 
【このページの目次】

jQueryプラグイン「jquery.sticky.js」をダウンロードして、自サイト上に設置

まずは、jQueryプラグイン「jquery.sticky.js」の本体であるJavaScriptファイルをダウンロードして、自サイト上に設置しましょう。設置と言っても、ファイル1つを任意の場所にアップロードすれば良いだけなので簡単です。

Step.1 配布サイトからダウンロード
Sticky Plugin配布サイト

Sticky Plugin配布サイト

「jquery.sticky.js」の配布サイトへアクセスして、右図のように「DOWNLOAD PLUGIN」ボタンを押します。すると、ZIP形式に圧縮された一式をダウンロードできます。本稿執筆時点では、「garand-sticky-1.0.3-5-g1643193.zip」というファイル名でダウンロードできました。


 
Step.2 JavaScriptファイル1つを抜き出す
必要なのは「jquery.sticky.js」ファイル1つだけ

必要なのは「jquery.sticky.js」ファイル1つだけ

ZIPファイルを展開すると、右図のように複数のファイルが出てきます。ここには、スクリプト本体である「jquery.sticky.js」ファイルのほか、サンプルHTMLファイルなどが含まれています。このうち必要なのは「jquery.sticky.js」ファイル1つだけです。このファイルだけを抜き出して下さい。


 
Step.3 自サイト上にjquery.sticky.jsをアップロードする
自サイト上の適当な場所に、「jquery.sticky.js」ファイルをアップロードして下さい。これで準備は完了です。



 

jQuery本体とプラグイン「jquery.sticky.js」を読み込む記述を追記

スクリプトを2つ読み込むだけ

スクリプトを2つ読み込むだけ

次に、「jquery.sticky.js」スクリプトを読み込んで、使える状態にします。このスクリプトは「jQueryプラグイン」として動作しますから、先にjQuery本体を読み込んでおく必要があります。そのため、以下のA・Bの2行を(A→Bの順番で)HTML内に記述して下さい。


 
A. jQuery本体を読み込む
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js" type="text/javascript"></script>
上記は、jQuery本体(Ver 1.11.3)をCDN経由で読み込む例です。特に不都合がなければ上記のままコピー&ペーストすれば問題ありません。既に別の場所でjQueryを読み込んでいる場合は記述を省略できます。jQueryについて詳しくは、別途記事「JavaScriptを便利にするライブラリ jQueryを使う準備」をご参照下さい。

B. jQueryプラグイン「jquery.sticky.js」スクリプトを読み込む
<script src="jquery.sticky.js" type="text/javascript"></script>
上記は、HTMLファイルと同じ場所に「jquery.sticky.js」ファイルがある場合の記述です。実際にアップロードした位置に合わせて修正して下さい。


スクロール後に固定したい対象のメニューバーを指定

メニューにid名を加えて、スクリプトにもそのid名を指定

メニューにid名を加えて、スクリプトにもそのid名を指定

最後に、ウェブページが下方向へスクロールされた際に画面上端に固定したいメニューバーを作成し、そのメニューバーに付加したid名をスクリプトに指定します。

手順は以下の2ステップだけです。


 
1. 固定したいメニューバーに、任意のid名を付加しておく
<div id="sticky-menubar">
   ......(メニューバーの中身)......
</div>
まずは、対象のメニューバーにid属性を使って適当なid名を加えます。他と重複しないid名を付けて下さい。上記では「sticky-menubar」というid名を加えています。このid名は何でも構いませんが、同一ページ内で同じid名は1度しか使えない点に注意して下さい。

2. スクリプト「jquery.sticky.js」に対して、そのid名を教える
<script type="text/javascript">
$(window).load(function(){
   $("#sticky-menubar").sticky({ topSpacing: 0 });
});
</script>
どの要素を固定対象にするのかを指定するには、上記の5行を記述します。3行目にある「#sticky-menubar」が対象のid名を指定している部分です。実際に付けたid名に合わせて修正して下さい。id名の先頭に「#」記号が必須ですので忘れないようご注意下さい。

※3行目の最後にある「topSpacing: 0」は、固定する際の「上端からの距離」を表しています。値が「0」だと上端にぴったりひっついて固定されます。例えば「5」にすると、上端から5ピクセルだけ離れた位置に固定されます。

必要な記述は以上で終わりです。

jQueryプラグイン「jquery.sticky.js」を使う際の記述のまとめ

上記の4つの記述(=A・B・1・2)のうち、メニューバーを作る記述(=1)はHTMLソースの中でメニューバーを表示したい場所に記述して下さい。スクリプトを読み込んだり実行したりする部分(=A・B・2)はHTMLソースの末尾などにまとめて記述しておけば問題ありません。したがって、記述の位置関係をまとめると、下図のような記述順序になります。

メニューバーは任意の位置に掲載し、スクリプトの読み込みや実行はHTMLの末尾(=</body>タグの直前)に記述すれば良い

メニューバーは任意の位置に掲載し、スクリプトの読み込みや実行はHTMLの末尾(=</body>タグの直前)に記述すれば良い


サンプルページのソースも参考に
サンプルページを表示したところ

サンプルページを表示したところ

実際の表示例や記述例は、サンプルページのHTMLソースをご覧下さい。ソース中にはコメントの形で注釈を含めてありますので、コピー&ペーストして使ってみる際の参考にして下さい。

ヘッダ直下のメニューバーをスクロール後に上端に固定するサンプルページ


 

ヘッダの下にあるメニューバーを、スクロール後には上端に固定する方法

今回は、jQueryプラグイン「jquery.sticky.js」を使って「特定の要素がスクロールによって消える寸前に、ウインドウ上端に固定する」デザインの作り方をご紹介いたしました。メニューバーに活用することを例にして解説しましたが、もちろん用途はメニューバーに限りません。どんな要素でも固定できます。ぜひ様々な場所で活用してみて下さい。

【関連記事】

【編集部おすすめの購入サイト】
Amazonでホームページ作成の参考書をチェック!楽天市場でホームページ作成関連の書籍をチェック!
  • 前のページへ
  • 1
  • 2
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます