キャンペーン期間中のみバナーを表示させたり、特定の期間だけページ全体のデザインを変えたりしたいなら、タイマーで自動で切り替えると便利です。
特にECサイトや集客向けのランディングページなど、時間の流れが早いコンテンツを管理しているときにおすすめです。
CONTENTS
サンプル
サンプルを見てみましょう。
See the Pen
タイマーを使って表示/非表示を自動で切り替える by イロイロデザインラボラトリ (@iroirodesignlab)
on CodePen.
この記事を見ているあなたが2024年12月31日23:59以前の場合、サンプルには「タイマーで表示中」と表示されています。逆に2025年1月1日0:00以降の場合、サンプルには何も表示されていません。
HTML
HTMLはこんな感じです。
<p class="js-timer" data-start="2024/1/1 0:00" data-end="2024/12/31 23:59">タイマーで表示中</p>
要素にjs-timerというclassを付けて、さらにdata属性に日時を入れます。data-startには表示期間が開始される日時、data-endには表示期間が終わる日時を入れます。
CSS
CSSは特に何もしなくてだいじょうぶです。が、スタイルを適用する場合は.js-timerを使わずに必ず他のclassを作ってそちらにスタイルを適用するようにしましょう。
JavaScript
JavaScriptはjQueryを使っています。
$(document).ready(function () { $(".js-timer").each(function (index, target) { var startDate = $(this).attr("data-start"); var endDate = $(this).attr("data-end"); var nowDate = new Date(); if (startDate) { startDate = new Date(startDate); } else { startDate = nowDate; } if (endDate) { endDate = new Date(endDate); } if (startDate <= nowDate && (!endDate || nowDate <= endDate)) { $(this).show(); } else { $(this).hide(); } }); });
条件に合ったら.showで表示にして、条件に合わなかったら.hideで非表示になるというわけですね!