スマートフォン用フルスクリーンメニューの作り方
jQueryを利用して開閉するスマートフォン用フルスクリーンメニュー
以前紹介した、CSSでつくるハンバーガーメニューボタンとjQueryを組み合わせてスマートフォン表示用の開閉するフルスクリーンメニューを作成する時の記述例を紹介します。
ハンバーガーメニューボタンを押すと、スマートフォンのディスプレイ全面にメニューが表示されます。
※今回紹介する記述例ではjQueryを使用していますので、htmlファイルにjQueryの読み込みが必要です。jQueryについて詳しくは下記の記事で紹介していますのでよかったら見てみてください。
jQueryをWebページに読み込ませる方法
jQueryをWebページに読み込ませる方法について、ダウンロードしてサイトに設置する場合とCDNを利用する場合それぞれの方法を紹介していきます。
スマートフォン用フルスクリーンメニューの実装例
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(); }); }); });
まとめ
以上、スマートフォンなどで利用しやすいハンバーガーボタンと開閉メニューの実装例、記述例について紹介してきました。
参考になりましたら幸いです。
関連記事
ハンバーガーメニューのボタンをCSSでつくる
ハンバーガーメニューのボタンをCSSを利用してつくる時の記述例を紹介します。
コメントを残す