Webサイト運営において、
重要なお知らせを確実に読んでもらいたい
一定時間表示後に自動で別ページへ誘導したい
といったケースは少なくありません。
本記事では、
- モーダルをクリックで閉じられないようにする
- 一定時間(10秒)経過後に自動で別ページへリダイレクトする
- 表示頻度を制御する(例:12時間に1回)
という仕様を、汎用サンプルコードで解説します。
実装イメージ
- ページ読み込み時にモーダルを表示
- ユーザー操作(クリック)では閉じられない
- 表示から10秒後に自動的に別ページへ移動
- 同一ユーザーには短時間で何度も表示しない
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>
ポイント解説
① クリックで閉じられない設計
- 閉じるボタンを設置しない
- 背景クリックによる close 処理を実装しない
これにより、ユーザー操作では閉じられないモーダルになります。
② setTimeout で時間指定リダイレクト
setTimeout(function () {
window.location.href = '遷移先URL';
}, 10000);
10000= 10秒- 数値を変更するだけで表示時間を調整可能
③ localStorage による表示回数制御
localStorage.setItem('modalLastShown', now.toString());
- 同一ブラウザでは一定時間モーダルを再表示しない
- 過度な表示によるUX低下を防止
この仕組みが向いているケース
- サービス終了・重要告知
- 運営方針変更のお知らせ
- 専用ページへの案内を確実に表示したい場合
- LP やキャンペーンページへの強制導線
注意点
- 自動リダイレクトはユーザー体験に配慮して使用する
- モバイル環境では表示時間をやや長めにするのも有効
- ブラウザの仕様により、新規タブ自動オープンは制限される
まとめ
クリックでは閉じられないモーダルと、
時間経過による自動リダイレクトを組み合わせることで、
- 重要情報の視認性向上
- 誘導率の安定化
- 運営側の意図を明確に伝える
といった効果が期待できます。
本記事のサンプルコードをベースに、
表示時間やリダイレクト先を調整して活用してみてください。

