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

ドロワーメニュー

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

ドロワーメニューを画面下からスライド表示する方法を紹介します。「メニューを開く」ボタンをクリックすると、画面下部に隠れているドロワーメニューが上方向へ滑らかに表示されるサンプルです。画面下部から操作メニューやナビゲーションを表示したい場合に利用できます。

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

スマートフォン向けのボトムメニュー、商品ページの操作パネル、会員サイト、管理画面、サービスサイトなど、画面下部からメニューを表示したい場面に使えます。ドロワーメニューの高さ、背景色、文字色、余白、影、スライド速度、メニュー項目はコード内で変更できます。

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

デモ

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

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

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

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

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

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

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

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

  </main>

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

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

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

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

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

    </div>

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

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

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

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

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

    </nav>

  </aside>

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

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

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptを使用した全3ファイル構成です。画面下からスライド表示されるドロワーメニューを実装しており、JavaScriptで開閉状態を切り替えます。

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
transition: transform .35s ease;

0.35秒でスライドアニメーションを行います。値を大きくするとゆっくり、小さくすると速く表示されます。

style.css
max-height:85%;

ドロワーメニューの最大高さです。値を変更すると表示される高さが変わります。

style.css
padding:28px 24px;

ドロワーメニュー内側の余白です。値を変更すると見た目のゆとりが変わります。

レスポンシブ対応
このサンプルはレスポンシブ対応です。
style.cssのmedia queryでスマートフォン用レイアウトへ切り替えています。paddingやメニューの並びを調整し、スマートフォン・タブレット・PCで利用できます。


“`

こちらもおすすめ


コメント