スマートフォン用フルスクリーンメニューの作り方

HTML/CSS JavaScript/jQuery

jQueryを利用して開閉するスマートフォン用フルスクリーンメニュー

以前紹介した、CSSでつくるハンバーガーメニューボタンとjQueryを組み合わせてスマートフォン表示用の開閉するフルスクリーンメニューを作成する時の記述例を紹介します。
ハンバーガーメニューボタンを押すと、スマートフォンのディスプレイ全面にメニューが表示されます。
※今回紹介する記述例ではjQueryを使用していますので、htmlファイルにjQueryの読み込みが必要です。jQueryについて詳しくは下記の記事で紹介していますのでよかったら見てみてください。

スマートフォン用フルスクリーンメニューの実装例

jQueryを使って開閉できるスマートフォン用フルスクリーンメニューの実装例を紹介します。

See the Pen
oNXoJOJ
by saku (@web-saku)
on CodePen.

スマートフォン用フルスクリーンメニューの記述例

上で紹介したスマートフォン用フルスクリーンメニューのコード記述例を紹介します。

HTML

HTML

<header> <div class="sp-menu-icon"> <input id="sp-menu-icon-checkbox" class="sp-menu-icon-hidden" type="checkbox"> <label id="sp-menu-icon-icon" for="sp-menu-icon-checkbox"><span></span></label> </div> </header> <div class="sp-menu-item"> <nav class="gnav-sp"> <a href="index.html">HOME</a> <a href="service.html">サービス案内</a> <a href="faq.html">よくある質問</a> <a href="about.html">会社概要</a> <a class="contact-btn" href="contact.html">お問い合わせ</a> </nav> </div>

CSS

CSS

header { width: 100%; height: 70px; background: #09e; position: fixed; top: 0; } /* sp-menu-icon */ .sp-menu-icon { width: 30px; height: 30px; position: fixed; top: 20px; right: 20px; display: block; transition: all 0.3s; transform: rotate(0deg); z-index: 10; } .sp-menu-icon-hidden { display: none; } #sp-menu-icon-icon { cursor: pointer; display: inline-block; height: 30px; position: relative; width: 30px; } #sp-menu-icon-icon span { background: rgb(96, 96, 96); border-radius: 0px; display: block; height: 16%; left: 50%; margin: -8% 0 0 -42%; position: absolute; top: 50%; transition: all 0.3s ease-in-out; width: 84%; } #sp-menu-icon-icon span::before, #sp-menu-icon-icon span::after { -webkit-transform: rotate(0); background: rgb(96, 96, 96); border-radius: 0px; content: ""; display: block; height: 100%; left: 50%; margin: -8% 0 0 -50%; position: absolute; top: 50%; transform: rotate(0); transition: all 0.3s ease-in-out; width: 100%; } #sp-menu-icon-icon span::before { margin-top: -38%; } #sp-menu-icon-icon span::after { margin-top: 19%; } #sp-menu-icon-checkbox:checked ~ #sp-menu-icon-icon span { background: rgba(51, 51, 51, 0); } #sp-menu-icon-checkbox:checked ~ #sp-menu-icon-icon span::before, #sp-menu-icon-checkbox:checked ~ #sp-menu-icon-icon span::after { content: ""; display: block; height: 100%; left: 50%; margin: -8% 0 0 -42%; position: absolute; top: 50%; width: 100%; } #sp-menu-icon-checkbox:checked ~ #sp-menu-icon-icon span::before { -webkit-transform: rotate(-45deg); transform: rotate(-45deg); } #sp-menu-icon-checkbox:checked ~ #sp-menu-icon-icon span::after { -webkit-transform: rotate(45deg); transform: rotate(45deg); } /*sp-menu-item*/ .sp-menu-item { width: 100%; margin: 0 auto; z-index: 5; } .gnav-sp { display: block; margin: 0 auto; height: 100vh; overflow: scroll; background: #ddd; } .gnav-sp a:first-child { padding-top: 90px; } .gnav-sp a { display: block; width: 90%; padding: 20px; border-bottom: 1px solid #333; color: #333; text-decoration: none; } .gnav-sp .contact-btn { width: 180px; padding-top: 20px; text-align: center; margin: 40px auto 0; background: #933; color: #fff; } .sp-copy { width: 100%; height: 40px; position: fixed; bottom: 0; left: 0; background-color: #333; color: #fff; text-align: center; padding-top: 10px; }

JavaScript (jQuery)

jQuery

$(function(){ $(document).ready(function(){ $('.gnav-sp').hide(); $('#sp-menu-icon-icon').click(function () { $('.gnav-sp').slideToggle(); }); }); });

まとめ

以上、スマートフォンなどで利用しやすいハンバーガーボタンと開閉メニューの実装例、記述例について紹介してきました。
参考になりましたら幸いです。

関連記事

コメントを残す





このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください