画面下からスライドインするモーダルウインドウの作り方【HTML/CSS/JavaScript・サンプルコード付き】

モーダルウインドウ

画面下からスライドインするモーダルウインドウの作り方

画面下からスライドインするモーダルウインドウの作り方を紹介します。モーダルウインドウを表示すると、画面下部から中央へ向かって滑らかにスライドしながら表示されるサンプルです。一般的なフェード表示とは違い、下から出てくる動きがあるため、お知らせや確認画面を自然に目立たせたい場合に使いやすい実装です。

サンプルコードでは、「モーダルを開く」ボタンをクリックすると、モーダルウインドウが画面下からスライドインして表示されます。「閉じる」ボタンをクリックするとモーダルは非表示になり、再度ボタンを押すことで何度でも動作を確認できます。HTML・CSS・JavaScriptだけで実装しているため、外部ライブラリを使わずに導入できます。

キャンペーン案内、確認ダイアログ、ログイン案内、会員サイトのお知らせなど、ユーザーの視線を自然に集めたい場面で活用できます。タイトルや本文はHTML、色や余白、アニメーション速度、スライド位置はCSS、開閉処理は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>

  <!-- デモ全体 -->
  <div class="modal-slide-in-bottom_wrap">

    <!-- タイトル -->
    <h1 class="modal-slide-in-bottom_title">
      画面下からスライドインするモーダルウインドウ
    </h1>

    <!-- 説明文 -->
    <p class="modal-slide-in-bottom_text">
      モーダルウインドウが画面下から中央へスライドしながら表示されます。
    </p>

    <!-- モーダルを開くボタン -->
    <button
      class="modal-slide-in-bottom_open"
      type="button"
      data-modal-open>
      モーダルを開く
    </button>

  </div>

  <!-- モーダル背景 -->
  <div
    class="modal-slide-in-bottom_overlay"
    data-modal-overlay>

    <!-- モーダル本体 -->
    <div
      class="modal-slide-in-bottom_modal"
      data-modal-box
      role="dialog"
      aria-modal="true"
      aria-labelledby="modal-title">

      <!-- モーダルタイトル -->
      <h2
        id="modal-title"
        class="modal-slide-in-bottom_modal-title">
        モーダルタイトル
      </h2>

      <!-- モーダル本文 -->
      <p class="modal-slide-in-bottom_modal-text">
        画面下から滑らかにスライドインして表示されるモーダルウインドウです。
      </p>

      <!-- 閉じるボタン -->
      <button
        class="modal-slide-in-bottom_close"
        type="button"
        data-modal-close>
        閉じる
      </button>

    </div>

  </div>

  <!-- 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・style.css・script.jsを配置します。
③ index.htmlをブラウザで開きます。
④ 「モーダルを開く」ボタンをクリックすると、モーダルウインドウが画面下からスライドしながら表示されます。
⑤ 「閉じる」ボタンをクリックするとモーダルウインドウが閉じます。

カスタマイズできる内容
・index.htmlでは、タイトルや本文、ボタンの文字を変更できます。
・style.cssでは、モーダルの色・サイズ・余白・角丸・影・背景色・表示位置を変更できます。
・script.jsでは、開閉方法や表示タイミングなどの動作を変更できます。

数値調整
・style.cssの「transform: translateY(120px);」は、画面下から移動してくる開始位置です。値を大きくすると、より下からスライドして表示されます。
・style.cssの「transition: transform .35s ease, opacity .35s ease;」は、スライドインアニメーションの時間です。.35を大きくするとゆっくり、小さくすると素早く表示されます。
・script.jsの「350」はモーダルを閉じるまでの待機時間です。CSSのtransition時間と同じ値に設定してください。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssで「width:100%;」「max-width:420px;」「padding:20px;」を使用しているため、画面サイズに応じてモーダルの幅が自動調整されます。また、640px以下では余白を変更しているため、スマートフォン・タブレット・PCでも利用しやすい構成です。



コメント