ハンバーガーメニューをjQueryで実装!コピペで動くサンプルコード付き【初心者向け】
この記事では、ウェブサイト制作でよく使われるハンバーガーメニューをjQueryを使って簡単に実装する方法を、初心者の方向けに解説します。コピペで使えるサンプルコードと詳しい解説で、誰でも簡単に設置できます。
1. ハンバーガーメニューとは?
- スマートフォンサイトでよく見る、3本線のアイコンをクリックするとメニューが開くUI
- 画面を広く使えるので、多くの情報を持つサイトに最適
- ユーザービリティ向上に繋がる
2. jQueryでハンバーガーメニューを実装するメリット
- シンプルなコードで実装できる
- アニメーション効果を簡単に追加できる
- 初心者でも扱いやすい
3. コピペで動く!ハンバーガーメニューの実装方法
3.1 HTMLの記述
まずは、ハンバーガーメニューのHTML構造を記述します。下記のサンプルコードをコピーして、HTMLファイルに貼り付けてください。
<header>
<div class="container">
<h1><a href="#">サイト名</a></h1>
<div class="menu-trigger">
<span></span>
<span></span>
<span></span>
</div>
<nav id="global-nav">
<ul>
<li><a href="#">ホーム</a></li>
<li><a href="#">サービス</a></li>
<li><a href="#">会社概要</a></li>
<li><a href="#">お問い合わせ</a></li>
</ul>
</nav>
</div>
</header>
3.2 CSSの記述
次に、ハンバーガーメニューのデザインを設定します。下記のサンプルコードをコピーして、CSSファイルに貼り付けてください。
/* ハンバーガーメニュー */
.menu-trigger {
display: none;
width: 50px;
height: 50px;
cursor: pointer;
position: relative;
}
.menu-trigger span {
display: block;
height: 2px;
background-color: #333;
position: absolute;
left: 0;
transition: all 0.3s ease-in-out;
}
.menu-trigger span:nth-child(1) {
top: 15px;
}
.menu-trigger span:nth-child(2) {
top: 25px;
}
.menu-trigger span:nth-child(3) {
top: 35px;
}
/* メニュー */
#global-nav {
display: block;
}
#global-nav ul {
margin: 0;
padding: 0;
list-style: none;
}
#global-nav li {
margin: 0;
padding: 0;
}
#global-nav a {
display: block;
padding: 15px 0;
text-decoration: none;
color: #333;
}
/* スマホサイズ以下でハンバーガーメニューを表示 */
@media screen and (max-width: 768px) {
.menu-trigger {
display: block;
}
#global-nav {
display: none;
}
/* メニューが開いた時のスタイル */
.open #global-nav {
display: block;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.8);
z-index: 100;
}
.open .menu-trigger span:nth-child(1) {
transform: translateY(10px) rotate(45deg);
}
.open .menu-trigger span:nth-child(2) {
opacity: 0;
}
.open .menu-trigger span:nth-child(3) {
transform: translateY(-10px) rotate(-45deg);
}
}
3.3 jQueryの記述
最後に、jQueryを使ってクリックイベントを設定し、メニュー表示の切り替えを実装します。下記のサンプルコードをコピーして、jQueryファイルに貼り付けてください。
$(function() {
$('.menu-trigger').on('click', function() {
$(this).toggleClass('open');
$('#global-nav').toggleClass('open');
});
});
4. さらに便利に!オプション機能の実装
上記をベースに、さらにハンバーガーメニューを便利にするオプション機能を紹介します。
機能 | 説明 |
---|---|
スクロールに合わせて表示を切り替える | ページ最上部ではハンバーガーメニューを非表示にし、スクロールすると表示させる |
メニュー表示時に背景を暗くする | メニューが開いた際に、背景を暗くしてメニューを目立たせる |
アニメーション効果を追加する | メニューの開閉にアニメーション効果を追加して、動きを滑らかにする |
5. まとめ
jQueryを使えばハンバーガーメニューを簡単に実装できます。本記事のサンプルコードを参考に、自分だけのオリジナルメニューを作成してみましょう。
参考文献
この記事に関するQ&A
Q1: jQueryを読み込むのを忘れてしまいました。
A1: <head> タグ内に下記のコードを追加して、jQueryを読み込んでください。(バージョンは適宜変更してください)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
Q2: ハンバーガーメニューの色を変えたいです。
A2: CSSファイルの `background-color` プロパティを変更してください。例えば、赤色にする場合は下記のように記述します。
.menu-trigger span {
background-color: red;
}
Q3: メニューの表示速度を遅くしたいです。
A3: CSSファイルの `transition` プロパティの秒数を変更してください。例えば、1秒にする場合は下記のように記述します。
.menu-trigger span {
transition: all 1s ease-in-out;
}
その他の参考記事:ハンバーガー メニュー jquery