ドロワーメニューを画面左からスライド表示する方法【HTML/CSS/JavaScript・サンプルコード付き】

ドロワーメニュー

ドロワーメニューを画面左からスライド表示する方法

ドロワーメニューを画面左からスライド表示する方法を紹介します。「メニューを開く」ボタンをクリックすると、画面外に隠れているドロワーメニューが左側から滑らかに表示されるサンプルです。限られた画面スペースを有効に使いながら、必要なときだけナビゲーションを表示できます。

このサンプルはHTML・CSS・JavaScriptのみで動作します。ドロワーメニュー内にはホーム、サービス、お知らせ、お問い合わせのリンクを配置し、右上の閉じるボタン、背景部分、またはメニュー項目をクリックすると閉じられる構成です。CSSのtransformとtransitionを使って、左側からのスライド表示を実装しています。

スマートフォン向けサイト、コーポレートサイト、会員サイト、管理画面、ECサイトの商品カテゴリーなど、ページ移動用のナビゲーションとして利用できます。メニューの横幅、背景色、文字色、余白、影、スライド速度、メニュー項目はコード内で変更できます。

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

デモ

左からスライドするドロワーメニュー

「メニューを開く」をクリックすると、画面左側からドロワーメニューを表示します。

「メニューを開く」をクリックすると左側から表示されます。閉じるボタン、背景部分、またはメニュー項目をクリックすると閉じます。

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

<!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>

  <!-- ドロワーメニューを開く操作エリア -->
  <main class="left-slide-drawer-menu_wrap">

    <!-- 操作エリアのタイトル -->
    <div class="left-slide-drawer-menu_title">
      左からスライドするドロワーメニュー
    </div>

    <!-- 操作エリアの説明文 -->
    <p class="left-slide-drawer-menu_text">
      「メニューを開く」をクリックすると、画面左側からドロワーメニューを表示します。
    </p>

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

  </main>

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

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

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

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

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

    </div>

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

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

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

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

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

    </nav>

  </aside>

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

</body>
</html>
コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLでページとドロワーメニューの構造を作成し、CSSで画面左からスライド表示するデザインやアニメーションを設定しています。JavaScriptではメニューの開閉や背景クリック時の閉じる処理を行っており、それぞれの役割を分けることで編集しやすい構成になっています。

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

各ファイルの役割
index.html
ドロワーメニュー本体、開くボタン、閉じるボタン、メニュー項目を配置します。メニューの項目名や表示内容を変更したい場合はこのファイルを編集します。

style.css
ドロワーメニューの横幅、背景色、文字色、余白、角丸、影、左からスライドするアニメーションなど見た目を設定しています。

script.js
開くボタン・閉じるボタン・背景クリック・メニュークリック時の開閉処理を管理しています。

設置方法・使い方
sampleフォルダへ3ファイルを配置します。
index.htmlをブラウザで開くと利用できます。
「メニューを開く」をクリックすると画面左からドロワーメニューが表示され、閉じるボタン、背景部分、またはメニュー項目をクリックすると閉じます。

カスタマイズできる内容
index.htmlではメニュー項目、タイトル、説明文、リンク先を変更できます。
style.cssではドロワーメニューの横幅、背景色、文字色、余白、角丸、影、ボタンデザイン、スライド方向、背景色を変更できます。
script.jsでは開閉条件や閉じるタイミングなどの動作を変更できます。

数値調整
style.css
width:320px;
ドロワーメニューの横幅です。値を変更するとメニューの幅が変わります。

style.css
transition:transform .35s ease;
0.35秒でスライド表示・非表示になります。値を大きくするとゆっくり、小さくすると速くなります。

style.css
background:rgba(15,23,42,.6);
0.6は背景の暗さです。値を大きくすると暗くなり、小さくすると背景が見えやすくなります。

レスポンシブ対応
style.cssでレスポンシブ対応しています。
max-width:85%を使用しているため、小さい画面では画面幅に合わせてドロワーメニューの幅が自動調整されます。
また、640px以下ではpaddingを変更し、スマートフォンでも操作しやすいレイアウトになります。PC・タブレット・スマートフォンで利用できます。


こちらもおすすめ


コメント