ハンバーガーボタンからドロワーメニューを開く方法【HTML/CSS/JavaScript・サンプルコード付き】

ドロワーメニュー
無料ツール
ドロワーメニューを自由に作成

表示位置・メニュー項目・サイズ・色・余白・閉じ方などを設定して、HTML・CSS・JavaScriptを自動生成できます。

ドロワーメニュー作成ツールを使う
新しいタブで開きます
無料ツール
ボタンを自由に作成

文字・サイズ・色・角丸・グラデーション・アイコン・ホバー・立体表現などを設定して、HTML・CSSを自動生成できます。

ボタン作成ツールを使う
新しいタブで開きます

ハンバーガーボタンからドロワーメニューを開く方法

ハンバーガーボタンからドロワーメニューを開く方法を紹介します。このサンプルでは、SVGで作成した3本線のハンバーガーアイコンをボタン内に配置し、クリックすると画面左側からドロワーメニューがスライドして表示されます。メニューを常に画面へ表示せず、必要なときだけ開けるため、表示領域を有効に使いたいWebサイトやスマートフォン向けページに利用できます。

ヘッダーのナビゲーション、会員サイトのメニュー、管理画面のナビゲーションなど、複数のリンクをまとめて表示したい場面に適しています。ドロワーメニューを開くとページ側に半透明の背景が表示され、メニュー内の「閉じる」ボタンをクリックすると元の状態へ戻ります。半透明の背景をクリックしても閉じないため、閉じる操作はメニュー内のボタンに統一した構成です。

HTMLではSVGのハンバーガーアイコン、メニューの見出し、リンク、閉じるボタンを変更できます。CSSではハンバーガーボタンやSVGアイコンのサイズ、ドロワーメニューの横幅、余白、背景色、角丸、影、スライド速度などを調整できます。JavaScriptではis-activeクラスの追加と削除によってメニューと半透明背景の表示を切り替えます。画面幅640px以下では余白を小さくするため、スマートフォン・タブレット・PCで利用できます。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

ハンバーガーボタン

3本線のボタンをクリックすると、左側からメニューが表示されます。

SVGで表示した3本線のハンバーガーボタンをクリックしてください。画面左側からドロワーメニューが表示されます。「閉じる」ボタンをクリックするとメニューが閉じます。半透明の背景をクリックしてもメニューは閉じません。

Q 他のアイコンを使いたい場合はどうするの?
A

無料のSVGアイコン作成ツールを使って、用途に合ったアイコンを作成できます。

コードをコピーして使おう!

<!DOCTYPE html>
<html lang="ja">
<head>

  <!-- 文字コード -->
  <meta charset="UTF-8">

  <!-- スマートフォン対応 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ページタイトル -->
  <title>ハンバーガーボタンからドロワーメニューを開く</title>

  <!-- CSSファイル -->
  <link rel="stylesheet" href="style.css">

</head>
<body>

  <!-- ハンバーガーボタンと説明をまとめるエリア -->
  <div class="hamburger-drawer-menu_wrap">

    <!-- タイトル -->
    <div class="hamburger-drawer-menu_title">
      ハンバーガーボタン
    </div>

    <!-- 説明文 -->
    <p class="hamburger-drawer-menu_text">
      3本線のボタンをクリックすると、左側からメニューが表示されます。
    </p>

    <!-- ドロワーメニューを開くボタン -->
    <button class="hamburger-drawer-menu_open" type="button" aria-label="メニューを開く" data-hamburger-drawer-open="">

      <!-- SVGで作成した3本線のハンバーガーアイコン -->
      <svg
        class="hamburger-drawer-menu_icon"
        viewBox="0 0 24 24"
        aria-hidden="true"
      >
        <path
          d="M4 6h16 M4 12h16 M4 18h16"
          fill="none"
          stroke="#ffffff"
          stroke-width="2"
          stroke-linecap="round"
        ></path>
      </svg>

    </button>

  </div>

  <!-- ドロワーメニュー表示時の半透明背景 -->
  <div class="hamburger-drawer-menu_overlay" data-hamburger-drawer-overlay=""></div>

  <!-- 左側から表示するドロワーメニュー -->
  <div class="hamburger-drawer-menu_drawer" data-hamburger-drawer="" role="dialog" aria-modal="true" aria-labelledby="hamburger-drawer-menu-heading">

    <!-- ドロワーメニューの見出し -->
    <div class="hamburger-drawer-menu_heading" id="hamburger-drawer-menu-heading">
      メニュー
    </div>

    <!-- ナビゲーションメニュー -->
    <nav class="hamburger-drawer-menu_nav" aria-label="メインメニュー">

      <a class="hamburger-drawer-menu_link" href="#">
        ホーム
      </a>

      <a class="hamburger-drawer-menu_link" href="#">
        サービス
      </a>

      <a class="hamburger-drawer-menu_link" href="#">
        お問い合わせ
      </a>

    </nav>

    <!-- ドロワーメニューを閉じるボタン -->
    <button class="hamburger-drawer-menu_close" type="button" data-hamburger-drawer-close="">
      閉じる
    </button>

  </div>

  <!-- JavaScriptファイル -->
  <script src="script.js"></script>

</body>
</html>
コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。 免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。 サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
Q ダウンロードしたけど、これをネット上で動かすにはどうするの?
A

Googleアカウントがあれば、InfinityFreeで無料サーバーを作成して、ダウンロードしたサンプルをネット上で動かせます。

InfinityFreeを初めて利用する場合は①から、すでにサーバーを作成している場合は②へ進んでください。

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLではSVGの3本線アイコンを配置したハンバーガーボタンとドロワーメニューを作成し、CSSではメニューの位置、横幅、半透明背景、スライド表示などを設定します。JavaScriptではis-activeクラスを追加・削除してドロワーメニューと半透明背景の表示を切り替えます。

sample/
    ├── index.html
    ├── style.css
    └── script.js

各ファイルの役割
index.htmlはハンバーガーボタンとドロワーメニューを構成するファイルです。SVGで作成した3本線のアイコン、メニューの見出し、ナビゲーションの文字とリンク先、閉じるボタンの文字を変更できます。

style.cssはハンバーガーボタン、SVGアイコン、半透明背景、ドロワーメニュー、ナビゲーション、閉じるボタンのデザインを設定するファイルです。サイズ、横幅、余白、色、角丸、影、スライド速度などを変更できます。

script.jsはドロワーメニューを開閉するファイルです。ハンバーガーボタンをクリックするとis-activeクラスを追加し、閉じるボタンをクリックするとクラスを削除します。

設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置します。3つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。ハンバーガーボタンをクリックすると画面左側からドロワーメニューが表示され、「閉じる」ボタンをクリックすると非表示になります。

カスタマイズできる内容
index.htmlではSVGのハンバーガーアイコン、ドロワーメニューの見出し、「ホーム」「サービス」「お問い合わせ」の表示文字とリンク先、閉じるボタンの文字を変更できます。style.cssではハンバーガーボタンやSVGアイコンの大きさ、ドロワーメニューの横幅、背景色、余白、メニューリンクの色や角丸、影、スライド速度などを変更できます。

数値調整
style.css
max-width:700px;
ハンバーガーボタンを配置するエリアの最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。

padding:32px;
ハンバーガーボタンを配置するエリアの内側余白です。値を大きくすると内容と枠線の間隔が広がります。

width:48px;・height:48px;
ハンバーガーボタンの大きさです。値を大きくするとボタンが大きくなり、小さくするとコンパクトになります。

width:24px;・height:24px;
SVGアイコンの表示サイズです。値を大きくすると3本線のアイコンが大きく表示されます。

width:320px;
ドロワーメニューの横幅です。値を大きくするとメニューが広くなり、小さくすると狭くなります。

max-width:85%;
画面幅に対するドロワーメニューの最大横幅です。値を大きくすると画面を覆う割合が増え、小さくすると表示幅が狭くなります。

padding:32px 24px;
ドロワーメニューの内側余白です。上下の32pxと左右の24pxを変更すると、メニュー内の余白を調整できます。

transition:.3s;
半透明背景とドロワーメニューの切り替え時間です。.3秒で変化します。値を大きくするとゆっくり、小さくすると速く切り替わります。

gap:10px;
ナビゲーション項目同士の間隔です。値を大きくすると項目間が広がり、小さくすると狭くなります。

box-shadow:12px 0 30px ...
表示中のドロワーメニューへ付ける影です。12pxは横方向の位置、30pxはぼかしの大きさで、値を変更すると影の位置や広がりを調整できます。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%とmax-width:700pxによってハンバーガーボタンを配置するエリアが画面幅に合わせて縮小されます。ドロワーメニューにはmax-width:85%を指定しているため、狭い画面でも画面幅に合わせて表示されます。また、640px以下ではエリアとドロワーメニューの余白を24px 18pxへ変更しているため、スマートフォン・タブレット・PCで利用できます。


こちらもおすすめ


コメント