背景をぼかして表示するポップアップの作り方【HTML/CSS/JavaScript・サンプルコード付き】

ポップアップ

背景をぼかして表示するポップアップの作り方

背景をぼかして表示するポップアップの作り方を紹介します。このサンプルでは、ページを読み込むと画面中央にポップアップを表示し、同時に背後のページ内容へぼかしを加えます。背景の文字やコンテンツをぼかすことで周囲の情報を目立ちにくくし、ポップアップ内のお知らせや案内へ視線を集めやすい表示を作成できます。

Webサイトのお知らせ、キャンペーンの案内、重要なメッセージ、利用者へ確認してほしい情報など、ページを開いたときに内容を目立たせたい場面に利用できます。ページ読み込み時にポップアップが自動で表示され、「閉じる」ボタンをクリックするとポップアップが非表示になり、背景に適用されていたぼかしも解除されます。

HTMLではポップアップ内のタイトルや文章、ボタンの文字を変更でき、CSSでは背景のぼかし具合、ポップアップの横幅、余白、背景色、角丸、影などを調整できます。JavaScriptではページ読み込み時の表示と「閉じる」ボタンによる非表示を制御します。画面幅に合わせてポップアップが縮小するため、スマートフォン・タブレット・PCで利用しやすいサンプルです。

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

デモ

背景をぼかして表示するポップアップ

ページ読み込み時に、背景をぼかしてポップアップを表示します。

お知らせ

背景をぼかして内容を目立たせる
ポップアップです。

ページ読み込み時に背景をぼかしてポップアップを表示します。「閉じる」で非表示になり、「もう一度表示する」を押すと再び表示されます。

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

<!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-background-popup_content is-blur"
    data-blur-background-popup-content>

    <!-- ページ内の案内エリア -->
    <div class="blur-background-popup_wrap">

      <!-- タイトル -->
      <div class="blur-background-popup_title">
        背景をぼかして表示するポップアップ
      </div>

      <!-- 説明文 -->
      <p class="blur-background-popup_text">
        ページ読み込み時に、背景をぼかしてポップアップを表示します。
      </p>

    </div>

  </main>

  <!-- ポップアップ表示エリア -->
  <div
    class="blur-background-popup_overlay"
    data-blur-background-popup-overlay>

    <!-- ポップアップ本体 -->
    <div class="blur-background-popup_box">

      <!-- ポップアップのタイトル -->
      <div class="blur-background-popup_heading">
        お知らせ
      </div>

      <!-- ポップアップの文章 -->
      <p class="blur-background-popup_message">
        背景をぼかして内容を目立たせる<br>
        ポップアップです。
      </p>

      <!-- ポップアップを閉じるボタン -->
      <button
        class="blur-background-popup_close"
        type="button"
        data-blur-background-popup-close>
        閉じる
      </button>

    </div>

  </div>

  <!-- 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、style.css、script.jsを配置します。3つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。ページを開くと背景がぼかされた状態でポップアップが画面中央へ表示されます。「閉じる」ボタンをクリックするとポップアップが非表示になり、背景のぼかしも解除されます。

カスタマイズできる内容
index.htmlではページ内のタイトルや説明文、ポップアップ内のタイトル、文章、「閉じる」ボタンの文字を変更できます。お知らせ、キャンペーン案内、重要なメッセージなど、表示したい内容に合わせて文章を書き換えられます。

style.cssでは背景のぼかし具合、ページ内容の最大横幅や高さ、余白、ポップアップの最大横幅、背景色、角丸、影、文字サイズ、ボタンの色などを変更できます。背景のぼかしはfilter:blur(6px);で設定しているため、この値を変更するとぼかしの強さを調整できます。

数値調整
style.css
filter:blur(6px);
ポップアップ表示中の背景のぼかし具合です。6pxを大きくすると背景が強くぼかされ、小さくするとぼかしが弱くなります。

transition:filter .3s ease;
背景のぼかしが切り替わる時間です。0.3秒で変化します。値を大きくするとゆっくり、小さくすると速く切り替わります。

max-width:760px;
ページ内の案内エリアの最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。

min-height:620px;
案内エリアの最小高さです。値を大きくすると縦に広がり、小さくすると低くなります。

margin:40px auto;
案内エリアの上下余白です。40pxを大きくすると上下の間隔が広がり、小さくすると狭くなります。

padding:40px;
案内エリアの内側余白です。値を大きくすると内容と枠線の間隔が広がり、小さくすると詰まった表示になります。

border-radius:20px;
案内エリアの角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

font-size:28px;
ページ内タイトルの文字サイズです。値を大きくすると文字が大きくなり、小さくすると控えめになります。

padding:32px;
ポップアップ表示エリアと画面端の間隔です。値を大きくするとポップアップと画面端の余白が広がります。

max-width:460px;
ポップアップ本体の最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。

padding:40px 32px;
ポップアップ本体の内側余白です。上下40px、左右32pxの余白を設定しています。値を大きくすると内容とポップアップ端の間隔が広がります。

border-radius:20px;
ポップアップ本体の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

box-shadow:0 20px 50px rgba(15,23,42,.28);
ポップアップの影です。20pxで縦方向の位置、50pxでぼかしの広がりを調整できます。最後の0.28を変更すると影の濃さを調整できます。

font-size:34px;
ポップアップ内のタイトルの文字サイズです。値を大きくするとタイトルが大きくなり、小さくすると控えめになります。

margin:0 0 32px;
ポップアップ内の文章と「閉じる」ボタンの間隔です。32pxを大きくすると間隔が広がり、小さくすると狭くなります。

padding:14px 40px;
「閉じる」ボタンの内側余白です。上下14px、左右40pxを設定しています。値を大きくするとボタンが大きくなります。

border-radius:999px;
「閉じる」ボタンの角丸です。大きな値を指定することで、左右が丸いボタンとして表示しています。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssでは案内エリアとポップアップへwidth:100%max-widthを設定し、画面幅に合わせて縮小できるようにしています。また、640px以下ではページ内容の余白、案内エリアの高さや余白、ポップアップ表示エリアの余白、ポップアップ本体の内側余白、文字サイズを小さくするメディアクエリを設定しているため、スマートフォン・タブレット・PCで利用できます。


こちらもおすすめ


コメント