今回は、
・ハンバーガーメニューの実装方法が分からない。
・コピペしたい
・jQuery分からない
方のためにコピペで使用できるコードを準備しました!
今まで、LPやサイトを約20ページ程コーディングしてきました。
コーディングで一番時間がかかっていたのが、メニュー部分です。
メニューはどのサイトにもあり、
私の場合は全案件でハンバーガーメニューの実装があったので、
ここを押さえておくことでかなり時短になります。
今回紹介するハンバーガーメニュー
今回紹介するハンバーガメニューは、
・ボタンをクリックするとボタンが×になって、ふわっとメニューが現れる。
(×ボタンをクリックすると閉じる)
・メニューバーは画面の上に固定しておく。
・ハンバーガーボタンになるタイミングは2種
①PCでもスマホでもハンバーガーメニュー
②スマホ(タブレット以下)のみハンバーガメニュー
コード(コピペ可)
①PCでもスマホでもハンバーガーメニュー
See the Pen ハンバーガーメニュー(PC) by emi (@emi-jp) on CodePen.
②スマホ(タブレット以下)のみハンバーガメニュー
ブログ記事に埋め込むと①と同じに見えますが、
コードは、タブレット以下(768px以下)のみハンバーガメニューとなります。
※HTMLコードは①と同じです
See the Pen ハンバーガーメニュー(タブレット以下) by emi (@emi-jp) on CodePen.
PC時のメニュー↓
仕組み
※下記仕組みの説明であって、コピペしても上記とは同じになりません。
(CSSを一部しか書いていないため)
①メニュー作成(menu-lists)
→displey:none; で隠しておく。
HTML↓
<nav class="menu-lists">
<ul>
<li><a href="#">HTMLについて</a></li>
<li><a href="#">CSSについて</a></li>
<li><a href="#">jQueryについて</a></li>
</ul>
</nav>
CSS↓
.menu-lists{
display: none;
}
②クリック用ボタン(btn)作成
HTML↓
<div class="btn">
<span class="bar bar-top"></span>
<span class="bar bar-middle"></span>
<span class="bar bar-bottom"></span>
</div>
CSS↓
.btn{
width: 100%;
display: block;
width: 39px;
height: 39px;
position: absolute;
right: 0;
z-index: 999;/*追記:いつも一番上*/
}
.bar{
width: 20px;
height: 1px;
display: block;
position: absolute;
left: 50%;
transform: translateX(-50%);
background-color: #000;
}
.bar-top{ top: 10px;}
.bar-middle{
top: 50%;
transform: translate(-50%,-50%);
}
.bar-bottom{ bottom: 10px;}
③ボタンが✖︎になるCSSを書いておく
.btn.close .bar-top{
transform: translate(-50%,10px) rotate(45deg);
transition: transform .3s;
}
.btn.close .bar-middle{
opacity: 0;
transition: opacity .3s;
}
.btn.close .bar-bottom{
transform: translate(-50%,-8px) rotate(-45deg);
transition: transform .3s;
}
④ボタン(②)をクリックすると、
メニュー(①)がdisplay:block;で出てくるようにする<jQuery使用>
jQuery↓
$(function() {
$('.btn').on('click',function(){ // .btnをクリックすると〜
$('.btn').toggleClass('close'); // .btnにcloseというクラスが追加される
$('nav').fadeToggle(500); // navの表示・非表示切り替わる
});
});
その他 参考になるサイト
■アクセシビリティに配慮したハンバーガーボタンの作り方がわかる
Shibajukuさんの記事↓

■バーが2本バージョンやクルッと回る動きなどもある
動くWebデザインアイデア帳↓

■ハンバーガーメニューだけでなくて、
まずどこから手を付けたらいいかわからない…という場合は、
動画を見ながら手を動かせる
たにぐちまことさんのUdemy教材↓
(購入する場合は、セールを狙ってください。)
[HTML/CSS/JavaScript] フロントエンドエンジニアになりたい人の Webプログラミング入門
Vanilla JSでハンバーガーメニューを作る方法も別記事にしました。


