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

ドロワーメニュー

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

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

このサンプルは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="top-slide-drawer-menu_wrap">

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

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

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

  </main>

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

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

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

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

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

    </div>

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

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

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

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

      <!-- お問い合わせへのリンク -->
      <a
        class="top-slide-drawer-menu_link"
        href="#contact"
        data-top-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フォルダ内のindex.htmlをブラウザで開くだけで利用できます。HTML・CSS・JavaScriptの3ファイルを同じフォルダへ配置してください。サーバーは不要で、そのまま動作確認できます。

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

数値調整
style.cssのmax-height:85%;を変更するとドロワーメニューの高さが変わります。

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

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

レスポンシブ対応
style.cssではwidth:100%を使用しているため、画面幅いっぱいにドロワーメニューを表示できます。また、640px以下ではmedia queryによって余白やメニューの並びを調整し、grid-template-columns:1fr;へ変更することでスマートフォン・タブレット・PCでも利用できます。


こちらもおすすめ


コメント