デザインの幅を広げる!ハンバーガーメニューの作り方と応用テクニックを徹底解説

ハンバーガーメニューは、モバイルデバイスでの閲覧に対応するために設計された、ナビゲーションメニューの一種です。3本線のアイコン(「ハンバーガー」の形に似ていることからこの名前が付いています)をクリックすることで、メニューが表示される仕組みです。このメニューは、画面スペースを節約しつつ、ユーザーに便利なナビゲーションを提供するために広く使われています。


基本的なハンバーガーメニューの作り方

HTML

まず、HTMLでは、ハンバーガーメニューのアイコンとメニュー項目を定義します。

<div class="menu-icon">
<span></span>
<span></span>
<span></span>
</div>
<nav class="nav-menu">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
  • menu-icon クラスには、ハンバーガーメニューのアイコンが含まれています。3つの span タグが、それぞれハンバーガーの線を表します。
  • nav-menu クラスには、メニュー項目を定義します。このメニューは最初は非表示にしておき、ユーザーがハンバーガーアイコンをクリックしたときに表示されます。

CSS

次に、CSSを使用してハンバーガーメニューのデザインを行います。

/* ハンバーガーアイコンのデザイン */
.menu-icon {
width: 30px;
height: 25px;
display: flex;
flex-direction: column;
justify-content: space-between;
cursor: pointer;
}
.menu-icon span {
width: 100%;
height: 3px;
background-color: #333;
}
/* メニューの非表示状態 */
.nav-menu {
display: none;
}
/* メニューの表示状態 */
.nav-menu.active {
display: block;
}
  • menu-icon クラスでハンバーガーアイコンのサイズと配置を設定しています。span 要素には線の太さや色を指定しています。
  • nav-menu クラスでは、初期状態でメニューを非表示に設定します。ユーザーがハンバーガーメニューをクリックすると、active クラスが追加され、メニューが表示されます。

JavaScript

最後に、JavaScriptを使ってハンバーガーアイコンのクリックイベントを処理します。

const menuIcon = document.querySelector('.menu-icon');
const navMenu = document.querySelector('.nav-menu');
menuIcon.addEventListener('click', () => {
navMenu.classList.toggle('active');
});

このコードでは、ハンバーガーアイコンをクリックするたびに、nav-menuactive クラスを追加・削除することで、メニューの表示・非表示を切り替えています。


応用例

1. アニメーションを追加

ハンバーガーメニューにアニメーションを加えると、より洗練された見た目になります。たとえば、アイコンがクリックされたときに変形して「X」マークになるアニメーションを実装できます。

..menu-icon.active span :first-child {
transform: rotate(45deg);
top: 10px;
}
.menu-icon.active span :nth-child(2) {
opacity: 0;
}
.menu-icon.active span :last-child {
transform: rotate(-45deg);
top: 10px;
}

2. ドロップダウンメニュー

ハンバーガーメニューにドロップダウンメニューを実装することも可能です。メニュー項目の一部をサブメニューとして表示することで、さらに多くのコンテンツをコンパクトに整理できます。

<li class="dropdown"><a href="#">Services</a>
<ul class="dropdown-menu">
<li><a href="#">Web Design</a></li>
<li><a href="#">SEO</a></li>
</ul>
</li>

CSSでサブメニューを隠し、hoverclick イベントで表示することができます。


ハンバーガーメニューの関連事項

1. レスポンシブデザインとの関係

ハンバーガーメニューは特にレスポンシブデザインで重要な役割を果たします。小さい画面(スマートフォンやタブレットなど)ではナビゲーションメニューが画面を占領してしまうため、ハンバーガーメニューを利用することで、画面のスペースを効率よく使用できます。メディアクエリを使用して、画面幅が一定のサイズ以下になった際にメニューをハンバーガーメニューに切り替えるのが一般的です。

@media (max-width: 768px) {
.nav-menu {
display: none;
}
.menu-icon {
display: block;
}
}

2. アクセシビリティの考慮

ハンバーガーメニューを設計する際には、アクセシビリティにも配慮する必要があります。キーボード操作でメニューを開閉できるようにすることや、スクリーンリーダーに対して適切な説明を提供することが求められます。たとえば、ARIA属性を使って、メニューの状態を表現できます。

<button aria-expanded="false" aria-controls="nav-menu">Menu</button>

ボタンがクリックされた際には、aria-expanded の値を true に切り替えるスクリプトを用意することで、視覚障害者にもわかりやすい操作性を提供できます。


まとめ

  • ハンバーガーメニュー は、モバイルデバイスや画面の小さいデバイス向けに最適化されたナビゲーションメニューであり、限られたスペースを有効に活用できます。
  • 基本的なHTML、CSS、JavaScriptを使用してシンプルなハンバーガーメニューを作成し、応用としてアニメーションやドロップダウンメニューを追加することで、より高度なナビゲーションを実現できます。
  • レスポンシブデザインと密接に関連しており、さまざまな画面サイズに対応できる柔軟な設計が可能です。
  • アクセシビリティを考慮し、すべてのユーザーにとって使いやすいメニューを提供することが重要です。

これらの要素を
組み合わせることで、使いやすく視覚的に魅力的なハンバーガーメニューを実装することができます。

コメント

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