サイトアイコン WEBデザインMATOME

クリックでは閉じないモーダルを表示し、10秒後に自動で別ページへ遷移させる方法

Webサイト運営において、
重要なお知らせを確実に読んでもらいたい
一定時間表示後に自動で別ページへ誘導したい
といったケースは少なくありません。

本記事では、

という仕様を、汎用サンプルコードで解説します。

実装イメージ

HTML(モーダル構造サンプル)

<div class="modal-overlay">
  <div class="modal-contents">
    <div class="modal-body">
      <p class="title">【タイトル】</p>
      <p>タイトルが入ります。</p>
      <p>
        テキスト記入エリアテキスト記入エリア
      </p>
    </div>
  </div>
</div>

※ URL・文言はすべてサンプルです。

JavaScript(10秒後に自動リダイレクト)

<script>
$(function () {
    var overlay = $('.modal-overlay');

    // 表示制御用キー
    var modalKey = 'modalLastShown';
    var limitTime = 12 * 60 * 60 * 1000; // 12時間

    var lastShown = localStorage.getItem(modalKey);
    var now = new Date().getTime();

    // 初回アクセス or 一定時間経過後のみ表示
    if (!lastShown || (now - parseInt(lastShown)) > limitTime) {
        overlay.addClass('active');
        localStorage.setItem(modalKey, now.toString());

        // 10秒後に自動遷移
        setTimeout(function () {
            window.location.href = 'https://example.com/sample-redirect/';
        }, 10000);
    }

    // クリックによる閉じ操作はあえて実装しない
});
</script>

毎回表示させる場合

<script>
$(function () {
    var overlay = $('.modal-overlay');

    // 常にモーダル表示
    overlay.addClass('active');

    // 10秒後に必ずリダイレクト
    setTimeout(function () {
        window.location.href = 'https://example.com/sample-redirect/';
    }, 10000); // 10秒
});
</script>

ポイント解説

① クリックで閉じられない設計

これにより、ユーザー操作では閉じられないモーダルになります。

② setTimeout で時間指定リダイレクト

setTimeout(function () {
    window.location.href = '遷移先URL';
}, 10000);

③ localStorage による表示回数制御

localStorage.setItem('modalLastShown', now.toString());

この仕組みが向いているケース

注意点


まとめ

クリックでは閉じられないモーダルと、
時間経過による自動リダイレクトを組み合わせることで、

といった効果が期待できます。

本記事のサンプルコードをベースに、
表示時間やリダイレクト先を調整して活用してみてください。

モバイルバージョンを終了