背景を暗くしないドロワーメニューの作り方【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>

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

    <!-- 操作エリアのタイトル -->
    <div class="drawer-menu-without-overlay_title">
      背景を暗くしないドロワーメニュー
    </div>

    <!-- 操作エリアの説明文 -->
    <p class="drawer-menu-without-overlay_text">
      ドロワーメニューを開いても背景は暗くならず、ページの内容をそのまま確認できます。
    </p>

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

  </main>

  <!-- 背景を暗くしないドロワーメニュー本体 -->
  <aside
    class="drawer-menu-without-overlay_drawer"
    data-drawer-menu-without-overlay-drawer
    aria-hidden="true">

    <!-- ドロワーメニュー上部 -->
    <div class="drawer-menu-without-overlay_header">

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

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

        <span class="drawer-menu-without-overlay_close-line drawer-menu-without-overlay_close-line-first"></span>
        <span class="drawer-menu-without-overlay_close-line drawer-menu-without-overlay_close-line-second"></span>

      </button>

    </div>

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

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

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

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

      <!-- お問い合わせへのリンク -->
      <a
        class="drawer-menu-without-overlay_link"
        href="#contact"
        data-drawer-menu-without-overlay-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をブラウザで開くとサンプルが動作します。
「メニューを開く」をクリックすると左側からドロワーメニューが表示されます。閉じるボタンまたはメニュー項目をクリックすると閉じます。

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

数値調整
style.cssの「width:320px;」を変更するとドロワーメニューの横幅が変わります。
style.cssの「transition:.3s;」は開閉アニメーション時間です。値を大きくするとゆっくり、小さくすると素早く開閉します。
style.cssの「padding」や「border-radius」を変更すると余白や角丸の大きさを調整できます。

レスポンシブ対応
このサンプルはレスポンシブ対応しています。
style.cssのmedia queryでスマートフォン向けの余白や文字サイズを調整しています。
また、「max-width:85%;」により画面幅に合わせてドロワーメニューの横幅が自動調整されます。PC・タブレット・スマートフォンで利用できます。



コメント