レスポンシブに対応した簡単メニュー

 responsive-menu

PC・タブレット・スマホ、それぞれに対応したレスポンシブなメニューを「jQuery」と「CSS」で簡単に作成できます。シンプルなものですが、その作り方をメモしておきます。

サンプルを用意しましたのでまずは確認してみてください。




ウィンドウサイズを小さくしてみたり広げてみたりすると、2列になり、メニュータブにと変化するようにしてあります。

デモサンプル

それでは、作り方を見ていきましょう。

1.HTMLを記述

ウィンドウサイズが769px以上の際は、<li>要素でナビゲーションを横並びにしています。サンプルではボタンを「8個」配置していますので、CSSの記述で「#menu li」要素の横幅を「12.5%」にしてあります。実際にサイト上でいくつのナビゲーションボタンを横に並べるかによって、「#menu li」の横幅を調整してください。

また、「#toggle」の部分はデフォルトでは「display:none;」で非表示にしておき、画面サイズが480px以下の場合のみ表示するように指定しています。

2.jQueryを読み込みJavaScriptを記述

3.CSSを記述

メディアクエリを使ってそれぞれの画面は合わせてメニューが変形するようになっています。
IE8以下は、基本的にメディアクエリに対応していないので、下記の一文を追記して対応させます。

実際にはどのように見えるかと言うと、

○横幅769px以上の場合は以下のように表示

ナビゲーションの最大幅を960pxに指定して、横並び8個なのでひとつあたり「12.5%」で指定

 960px以上の場合

 

○横幅481px~768pxの場合は以下のように表示

ナビゲーションの最大幅を画面サイズ100%に指定して、横並び4個×2段なのでひとつあたり「25%」で指定

481px以上、768px以下の場合

 

○横幅480px以下の場合は以下のように表示

スマホのポートレートモードの場合は、メニューを折りたたんで表示します。

480px以下の場合

デモサンプル

 

追記(2015/10/14)

ここから追記になります。

サイトを利用してくださっている方より、ご指摘のありました「メニューボタンを押した際にブルダウンのメニューが開いたままになってしまう」という問題を解決致しました。

JavaScriptに以下を追記

/* 追記部分 */から下を先程のコードに追記してください。

確認してみてください。こちらに書き換えたもののデモサンプルがこちら↓

再デモサンプル

正しく動作しているか少し不安・・・

 

 

タイトルとURLをコピーしました