ドロワーメニュー表示時に背景をぼかす方法【HTML/CSS/JavaScript・サンプルコード付き】

ドロワーメニュー

ドロワーメニュー表示時に背景をぼかす方法

ドロワーメニュー表示時に背景をぼかす方法を紹介します。「メニューを開く」ボタンをクリックすると、画面左側からドロワーメニューが表示され、メニュー以外のページ内容へぼかし効果が加わります。背景とメニューを視覚的に分け、開いているメニューへ注目を集めたい場合に利用できます。

このサンプルはHTML・CSS・JavaScriptだけで動作します。CSSのbackdrop-filterをオーバーレイへ設定し、半透明の暗い背景とぼかし効果を同時に表示します。閉じるボタン、背景部分、またはメニュー項目をクリックすると、ドロワーメニューと背景のぼかしが解除されます。

コーポレートサイト、サービスサイト、会員ページ、管理画面など、ドロワーメニューを目立たせたい画面に使えます。ぼかしの強さ、背景の暗さ、メニューの横幅、色、余白、影、スライド速度、メニュー項目はコード内で変更できます。

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

デモ

背景をぼかすドロワーメニュー

ドロワーメニューを開くと、背景の内容へぼかし効果を加えます。

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

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

<!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="blur-drawer-menu_page">

    <div class="blur-drawer-menu_wrap">

      <h1 class="blur-drawer-menu_title">
        ドロワーメニュー表示時に背景をぼかす
      </h1>

      <p class="blur-drawer-menu_text">
        「メニューを開く」をクリックすると、背景をぼかしながらドロワーメニューを表示します。
      </p>

      <button
        class="blur-drawer-menu_open"
        type="button"
        data-blur-drawer-open>
        メニューを開く
      </button>

    </div>

  </main>

  <!-- 背景オーバーレイ -->
  <div
    class="blur-drawer-menu_overlay"
    data-blur-drawer-overlay>
  </div>

  <!-- ドロワーメニュー -->
  <aside
    class="blur-drawer-menu_drawer"
    data-blur-drawer
    aria-hidden="true">

    <div class="blur-drawer-menu_header">

      <h2 class="blur-drawer-menu_heading">
        メニュー
      </h2>

      <button
        class="blur-drawer-menu_close"
        type="button"
        data-blur-drawer-close
        aria-label="閉じる">
      </button>

    </div>

    <nav class="blur-drawer-menu_nav">

      <a href="#" class="blur-drawer-menu_link">ホーム</a>
      <a href="#" class="blur-drawer-menu_link">サービス</a>
      <a href="#" class="blur-drawer-menu_link">お知らせ</a>
      <a href="#" class="blur-drawer-menu_link">お問い合わせ</a>

    </nav>

  </aside>

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

</body>
</html>

ファイル構成と設置方法

このサンプルは、HTML・CSS・JavaScriptの3ファイルで構成されています。JavaScriptでドロワーメニューの開閉を制御し、CSSのbackdrop-filterを利用してドロワーメニュー表示中の背景をぼかします。シンプルな構成なので、そのままコピーしてすぐに利用できます。

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

各ファイルの役割
index.htmlでは画面のレイアウトやドロワーメニューの構造を定義しています。メニュー項目やタイトルなどの表示内容を変更できます。

style.cssではレイアウト・配色・背景ぼかし・ドロワーメニューのデザイン・アニメーションを設定しています。背景のぼかし量や色、サイズ、余白なども編集できます。

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

設置方法・使い方
sampleフォルダ内へ3ファイルを配置します。配置後は sample/index.html をブラウザで開くだけで利用できます。「メニューを開く」をクリックすると背景がぼけた状態でドロワーメニューが表示されます。

カスタマイズできる内容
index.htmlではタイトル・説明文・メニュー項目を変更できます。style.cssでは背景色・文字色・ぼかし量・ドロワーメニューの横幅・角丸・影・余白・アニメーション速度を変更できます。script.jsでは開閉処理や閉じるタイミングなどを用途に合わせて変更できます。

数値調整
style.css の backdrop-filter:blur(7px); の7pxは背景のぼかし量です。値を大きくするとより強くぼけ、小さくすると控えめになります。

style.css の transition:transform .35s ease; の0.35秒はドロワーメニューの開閉速度です。値を大きくするとゆっくり、小さくすると素早く表示されます。

style.css の transition:opacity .3s; の0.3秒は背景ぼかしの表示速度です。値を変更するとフェードイン・フェードアウトの速度が変わります。

レスポンシブ対応
style.cssの max-width:85%@media(max-width:640px) を利用して画面サイズに応じてドロワーメニューの幅や余白を自動調整しています。PC・タブレット・スマートフォンでもレイアウトが崩れにくく、そのまま利用できます。



コメント