[JS]多階層のナビゲーションを今風にサイドを利用して実装するスクリプト -MultiLevel Push Menu

タブレットによさそうな、もちろんスマフォやデスクトップ(IE8にも)対応しているナビゲーションの各階層を次々に押し出して重ねて表示するjQueryのプラグインを紹介します。

サイトのキャプチャ

Multi-level push menu
MultiLevel Push Menu -GitHub

MultiLevel Push Menuのデモ

デモChrome, Safari, Firefox, Operaなどのモダンブラウザ、IEは8+でご覧ください。
Android, iOSなどのスマフォ・タブレットにも対応しています。

サイトのキャプチャ

Demo: Basic

ナビゲーションは左サイドで、まずはミニマルサイズに変更できます。

サイトのキャプチャ

子階層をもったラベルを選択すると、その階層を押し出して、親階層に重ねます。

サイトのキャプチャ

さらに、孫の階層を選択すると、子と親を重ねます。

サイトのキャプチャ

ナビゲーションだけを拡大すると、こんな感じに。

サイトのキャプチャ

デモでは、さまざまなバリエーションが用意されています。
このデモはナビゲーションをリスト要素ではなく、JSの配列で実装したもの。

サイトのキャプチャ

Demo: Basic JS

見た目的にも、オプションが用意されています。
これはナビゲーションのサイズを指定したデモ。

サイトのキャプチャ

Demo: Custom Size

同じように階層が重なります。

サイトのキャプチャ

押し出すのはコンテナも可能です。

サイトのキャプチャ

Demo: Push many containers

複数のコンテナを押し出します。

サイトのキャプチャ

MultiLevel Push Menuの使い方

アイデアの元となっているのは、こちらのデモ。

実装はより簡単に、オプションも豊富に進化しています。

Step 1: 外部ファイル

jquery.jsと当スクリプト・スタイルシートを外部ファイルとして記述します。

<link rel="stylesheet" href="multilevelpushmenu.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="jquery.multilevelpushmenu.min.js></script>

IE8をサポートする際は、Modernizrを加えます。

<script src="//oss.maxcdn.com/libs/modernizr/2.6.2/modernizr.min.js"></script>

Step 2: HTML

ナビゲーションは多階層に対応しており、リストの入れ子で実装します。

<div id="menu">
  <nav>
    <ul>
        <li>
            <a href="#"><i class="fa fa-laptop"></i>第一階層</a>
            <h2><i class="fa fa-laptop"></i>第一階層</h2>
            <ul>
                <li>
                    <a href="#"><i class="fa fa-phone"></i>第二階層</a>
                    <h2><i class="fa fa-phone"></i>第二階層</h2>
                    <ul>
                        <li><a href="#">アイテム</a></li>
                        <li><a href="#">アイテム</a></li>
                    </ul>
                </li>
            </ul>
        </li>
        <li>
            <a href="#"><i class="fa fa-laptop"></i>第一階層</a>
            <h2><i class="fa fa-laptop"></i>第一階層</h2>
            <ul>
                <li>
                    <a href="#"><i class="fa fa-phone"></i>第二階層</a>
                    <h2><i class="fa fa-phone"></i>第二階層</h2>
                    <ul>
                        <li><a href="#">アイテム</a></li>
                        <li><a href="#">アイテム</a></li>
                    </ul>
                </li>
            </ul>
        </li>
        <li>
            <a href="#">第一階層</a>
        </li>
        <li>
            <a href="#">第一階層</a>
        </li>
    </ul>
  </nav>
</div>

各アイテムはJavaScriptの配列で実装することもできます。

Step 3: JavaScript

ラッパをjQueryのセレクタで指定し、スクリプトを実行します。

 <script>
    $(document).ready(function(){
            $('#menu').multilevelpushmenu();
        });
    </script>  

オプションでは重ねや押し出しの有無、ナビゲーションのサイズなどを設定できます。

top of page

©2017 coliss