全画面ドロワーメニューの作り方【HTML/CSS/JavaScript・サンプルコード付き】

ドロワーメニュー

全画面ドロワーメニューの作り方

全画面ドロワーメニューの作り方を紹介します。画面全体を覆うメニューを表示できるため、スマートフォン向けナビゲーションやランディングページ、ポートフォリオサイトなどで視認性の高いメニューを実装したい場合に便利です。

このサンプルでは、ボタンをクリックすると全画面のドロワーメニューが表示され、メニュー項目の選択や閉じるボタンで元の画面へ戻れるシンプルな構成になっています。JavaScriptは最小限に抑え、導入やカスタマイズもしやすい内容です。

メニュー項目や背景色、文字サイズ、表示位置などは自由に変更できます。全画面表示のドロワーメニューを手軽に実装したい方は、ぜひサンプルコードをご活用ください。

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

デモ

全画面ドロワーメニュー

ボタンを押すと左側から画面全体を覆うドロワーメニューが表示されます。

「メニューを開く」をクリックすると、左側から画面全体を覆うドロワーメニューが表示されます。閉じるボタンまたは背景をクリックするとメニューを閉じられます。

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

<!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="fullscreen-drawer-menu_wrap">

    <!-- 操作エリアのタイトル -->
    <div class="fullscreen-drawer-menu_title">
      全画面ドロワーメニュー
    </div>

    <!-- 操作エリアの説明文 -->
    <p class="fullscreen-drawer-menu_text">
      ボタンを押すと左側から画面全体を覆うドロワーメニューが表示されます。
    </p>

    <!-- 全画面ドロワーメニューを開くボタン -->
    <button
      class="fullscreen-drawer-menu_open"
      type="button"
      data-fullscreen-drawer-menu-open>
      メニューを開く
    </button>

  </div>

  <!-- ドロワーメニュー表示中の背景 -->
  <div
    class="fullscreen-drawer-menu_overlay"
    data-fullscreen-drawer-menu-overlay>
  </div>

  <!-- 全画面ドロワーメニュー本体 -->
  <aside
    class="fullscreen-drawer-menu_drawer"
    data-fullscreen-drawer-menu-drawer
    aria-hidden="true">

    <!-- ドロワーメニュー上部 -->
    <div class="fullscreen-drawer-menu_header">

      <!-- ドロワーメニューのタイトル -->
      <div class="fullscreen-drawer-menu_heading">
        MENU
      </div>

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

    </div>

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

      <!-- ホームへのリンク -->
      <a
        class="fullscreen-drawer-menu_link"
        href="#home"
        data-fullscreen-drawer-menu-link>
        ホーム
      </a>

      <!-- サービスへのリンク -->
      <a
        class="fullscreen-drawer-menu_link"
        href="#service"
        data-fullscreen-drawer-menu-link>
        サービス
      </a>

      <!-- お知らせへのリンク -->
      <a
        class="fullscreen-drawer-menu_link"
        href="#news"
        data-fullscreen-drawer-menu-link>
        お知らせ
      </a>

      <!-- お問い合わせへのリンク -->
      <a
        class="fullscreen-drawer-menu_link"
        href="#contact"
        data-fullscreen-drawer-menu-link>
        お問い合わせ
      </a>

    </nav>

  </aside>

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

</body>
</html>

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成された、左側から画面全体へ表示される全画面ドロワーメニューです。ボタンをクリックすると画面外からドロワーメニューがスライド表示され、背景のオーバーレイや閉じるボタン、メニュー項目のクリックによって閉じる動作を実装しています。レイアウト・デザイン・開閉処理をそれぞれ別ファイルへ分けているため、初めてドロワーメニューを作る方でも編集しやすい構成です。

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

各ファイルの役割
index.htmlでは、開くボタン・全画面ドロワーメニュー・背景オーバーレイ・ナビゲーションリンクなどのHTMLを定義しています。メニュー項目や表示する文章を変更したい場合は、このファイルを編集します。

style.cssでは、全画面レイアウト・左側からスライドするアニメーション・色・余白・角丸・影・レスポンシブ対応などのデザインを管理しています。見た目を変更したい場合はこのファイルを編集します。

script.jsでは、ドロワーメニューの開閉処理、背景クリックによる終了、閉じるボタン、メニュークリック時の自動終了などを制御しています。

設置方法・使い方
sampleフォルダ内へ3ファイルを配置します。
index.htmlをブラウザで開くとサンプルを実行できます。
「メニューを開く」ボタンを押すと左側から画面全体へドロワーメニューが表示されます。

カスタマイズできる内容
index.htmlでは、メニュー項目・タイトル・説明文・ボタンの文字を変更できます。
style.cssでは、背景色・文字色・ボタン色・影・余白・サイズ・スライド方向・アニメーション時間などを変更できます。
script.jsでは、開閉するタイミングや閉じる条件などの動作を自由に変更できます。

数値調整
style.cssのtransition: transform .35s ease;は、ドロワーメニューが開閉する速度です。.35秒でスライドします。値を大きくするとゆっくり、小さくすると素早く開閉します。

style.cssのtransform:translateX(calc(-100% - 40px));は、ドロワーメニューを画面左外へ隠す位置です。値を変更すると開始位置を調整できます。

style.cssのbackground:rgba(15,23,42,.45);の「.45」は背景の暗さです。値を大きくすると背景が濃く、小さくすると薄く表示されます。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのmedia queryによって画面幅640px以下では余白や文字サイズを調整しています。また、width:100%とheight:100vhを利用しているため、スマートフォン・タブレット・PCの画面サイズに合わせて全画面ドロワーメニューが表示されます。



コメント