スクロール位置で自動表示するモーダルウインドウの作り方【HTML/CSS/JavaScript・サンプルコード付き】

html/css/js

スクロール位置で自動表示するモーダルウインドウの作り方

HTML・CSS・JavaScriptを使って、ページを一定位置までスクロールしたときに自動表示されるモーダルウインドウを作る方法を紹介します。このサンプルでは、指定した位置までスクロールするとモーダルが表示され、閉じるボタンや背景クリックで閉じる動作を実装しています。記事下部の案内表示やキャンペーン告知、注意喚起などに利用できます。

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

デモ

スクロール位置で自動表示するモーダル

このデモでは、ページを下へスクロールして指定位置を過ぎるとモーダルウインドウが自動表示されます。

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

<!DOCTYPE html>
<html lang="ja">
<head>

  <meta charset="UTF-8">

  <!-- ページタイトル -->
  <title>スクロール位置で自動表示するモーダルウインドウ</title>

  <!-- CSS読み込み -->
  <link rel="stylesheet" href="style.css">

</head>
<body>

  <!-- デモエリア -->
  <div class="scroll-position-modal-window_wrap">

    <div class="scroll-position-modal-window_title">
      スクロール位置で自動表示するモーダル
    </div>

    <p class="scroll-position-modal-window_text">
      ページを下へスクロールすると、指定位置でモーダルウインドウが自動表示されます。
    </p>

  </div>

  <!-- スクロール量を確保する余白 -->
  <div style="height:3000px;"></div>

  <!-- モーダル全体 -->
  <div class="scroll-position-modal-window_overlay" data-modal-overlay>

    <!-- モーダル本体 -->
    <div class="scroll-position-modal-window_modal" role="dialog" aria-modal="true">

      <div class="scroll-position-modal-window_modal-title">
        スクロール位置で表示
      </div>

      <p class="scroll-position-modal-window_modal-text">
        このモーダルウインドウは、ページを一定位置までスクロールすると自動表示されます。
      </p>

      <button class="scroll-position-modal-window_close" type="button" data-modal-close>
        閉じる
      </button>

    </div>

  </div>

  <!-- JavaScript読み込み -->
  <script src="script.js"></script>

</body>
</html>

ファイル構成と設置方法

このサンプルは、HTML・CSS・JavaScriptをそれぞれ別ファイルに分けて使用します。index.htmlstyle.cssscript.js を同じフォルダへ配置してください。

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

index.html をブラウザで開くと、ページを指定位置までスクロールしたタイミングでモーダルウインドウが自動表示されます。表示位置は script.js 内の window.scrollY > 300 の値を変更することで自由に調整できます。閉じるボタンまたは背景部分をクリックするとモーダルを閉じることができます。


コメント