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

ドロワーメニュー

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

ドロワーメニューを画面右からスライド表示する方法を紹介します。メニューボタンをクリックすると、画面右側から滑らかにドロワーメニューが表示される基本的なサンプルです。シンプルな構成なので、Webサイトや管理画面など幅広い用途で利用できます。

HTML・CSS・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>

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

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

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

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

  </main>

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

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

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

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

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

    </div>

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

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

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

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

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

    </nav>

  </aside>

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

</body>
</html>

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptを使用した、画面右側からスライド表示するドロワーメニューです。使用するファイルは3つだけなので、初心者でも構成が分かりやすく、そのままコピーして利用できます。

HTMLではドロワーメニュー本体や開閉ボタンを配置し、CSSでは右側からスライド表示するレイアウトやデザインを設定しています。JavaScriptでは開く・閉じる処理や背景クリックによる閉じる動作、メニュー選択時の閉じる処理を行っています。

それぞれの役割が分かれているため、デザインだけ変更したい場合や、メニュー項目だけ変更したい場合も編集しやすい構成になっています。

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

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

style.cssはドロワーメニュー全体のデザインを設定するファイルです。右側からスライドする動き、色、幅、余白、角丸、影などの見た目を変更できます。

script.jsはドロワーメニューを開く・閉じる処理を行うファイルです。開閉ボタン、背景クリック、メニュークリック時の動作を管理しています。

設置方法・使い方
sampleフォルダ内のindex.htmlをブラウザで開くだけで利用できます。HTML・CSS・JavaScriptの3ファイルを同じフォルダへ配置した状態で使用してください。サーバーは不要で、そのまま動作確認できます。

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

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

style.cssのtransition:transform .35s ease;の0.35は0.35秒を表します。値を大きくするとゆっくり、小さくすると速くスライドします。

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

レスポンシブ対応
style.cssではmax-width:85%を使用しているため、画面幅が狭い端末でもドロワーメニューが画面内に収まります。また、640px以下ではmedia queryによって余白を調整しており、スマートフォン・タブレット・PCで利用できます。



コメント