2026年4月23日
文化祭サイトにJavaScriptで動きをつけよう
文化祭のウェブサイトをHTMLとCSSで作ったら、次はJavaScriptで動きをつけてみましょう。カウントダウンタイマーやスライドショーを追加すると、サイトがぐっと本格的になります。
この記事では、コピペで使えるコードを2つ紹介します。HTMLとCSSの基本がわかっていれば、JavaScriptが初めてでも大丈夫です。
まだ文化祭サイトを作っていない方は、先に文化祭のウェブサイトを作ろう!を読んでください。
機能1:カウントダウンタイマー
文化祭当日までの残り日数をリアルタイムで表示するタイマーです。ヘッダーに追加すると「あと〇日!」というワクワク感を演出できます。
HTMLに追加するコード
ヘッダーの </header> の直前に以下を追加します。
<p class="countdown" id="countdown"></p>
CSSに追加するコード
.countdown {
font-size: 1.2rem;
margin-top: 12px;
background: rgba(255,255,255,0.2);
display: inline-block;
padding: 8px 20px;
border-radius: 20px;
}
JavaScriptのコード
</body> の直前に <script> タグを追加し、以下を書きます。
// 文化祭の日付を設定(年, 月-1, 日)
const festivalDate = new Date(2026, 8, 20); // 9月20日
function updateCountdown() {
const now = new Date();
const diff = festivalDate - now;
const days = Math.floor(diff / (1000 * 60 * 60 * 24));
const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
const el = document.getElementById("countdown");
if (days > 0) {
el.textContent = "🎉 文化祭まであと " + days + "日 " + hours + "時間!";
} else if (days === 0) {
el.textContent = "🎊 今日は文化祭です!楽しもう!";
} else {
el.textContent = "文化祭は終了しました。ありがとうございました!";
}
}
updateCountdown();
setInterval(updateCountdown, 60000); // 1分ごとに更新
💡 new Date(2026, 8, 20) の 8 は9月を意味します。JavaScriptでは月が0から始まるため、1月=0、9月=8 です。自分の文化祭の日付に書き換えてください。
📖 詳しくは問題ドリルで解説しています。
機能2:写真スライドショー
去年の文化祭の写真や、準備の様子を自動で切り替えて表示するスライドショーです。
HTMLに追加するコード
出し物一覧の上など、好きな場所に追加します。
<div class="slideshow">
<img id="slide" src="photo1.jpg" alt="文化祭の写真">
<div class="slide-btns">
<button id="prev-btn">◀ 前</button>
<button id="next-btn">次 ▶</button>
</div>
</div>
CSSに追加するコード
.slideshow {
text-align: center;
max-width: 600px;
margin: 0 auto 32px;
}
.slideshow img {
width: 100%;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.slide-btns {
margin-top: 12px;
display: flex;
justify-content: center;
gap: 12px;
}
.slide-btns button {
padding: 8px 20px;
border: none;
border-radius: 8px;
background: #ff6b6b;
color: #fff;
cursor: pointer;
font-size: 0.9rem;
}
JavaScriptのコード
const photos = ["photo1.jpg", "photo2.jpg", "photo3.jpg"];
let current = 0;
const slideImg = document.getElementById("slide");
function showSlide(index) {
current = index;
if (current < 0) current = photos.length - 1;
if (current >= photos.length) current = 0;
slideImg.src = photos[current];
}
document.getElementById("prev-btn").addEventListener("click", function() {
showSlide(current - 1);
});
document.getElementById("next-btn").addEventListener("click", function() {
showSlide(current + 1);
});
// 5秒ごとに自動切り替え
setInterval(function() {
showSlide(current + 1);
}, 5000);
💡 photos 配列に画像ファイル名を追加するだけで、スライドの枚数を増やせます。画像ファイルは HTML ファイルと同じフォルダに置いてください。
👉 用語集も参考にしてください。
文化祭サイトで使えるJavaScriptの演出アイデア
JavaScriptを使えば、文化祭サイトにさまざまな演出を加えられます。簡単に実装できるアイデアを紹介します。
アイデア1:カウントダウンタイマー
文化祭当日までの残り日数を表示するカウントダウンです。Dateオブジェクトを使って現在の日時と文化祭の日時の差を計算します。「あと○日○時間○分」と表示すれば、来場者の期待感を高められます。
アイデア2:画像スライドショー
出し物の写真を自動で切り替えるスライドショーです。setIntervalを使って数秒ごとに画像を切り替えます。準備の様子や去年の写真を流すと、雰囲気が伝わります。
アイデア3:ハンバーガーメニュー
スマホで見たときに、メニューをボタンで開閉する仕組みです。ボタンをクリックしたらメニューを表示し、もう一度クリックしたら閉じます。classListのtoggleメソッドを使えば、数行で実装できます。DOM操作の基本は「JavaScript DOM操作入門」で学べます。
アイデア4:スクロールで要素をふわっと表示
ページをスクロールしたときに、セクションがふわっと現れるアニメーションです。Intersection Observer APIを使うと、要素が画面に入ったタイミングを検知できます。CSSのopacityとtransitionを組み合わせて実現します。
アイデア5:クリックで色が変わるテーマ切り替え
ボタンを押すとページの配色が変わる機能です。CSS変数とJavaScriptを組み合わせます。「お化け屋敷モード」「カフェモード」など、出し物に合わせたテーマを用意すると楽しいです。
どのアイデアも、基本的なJavaScriptの知識があれば実装できます。最初はカウントダウンタイマーかハンバーガーメニューから挑戦してみましょう。コードが短くて、動いたときの達成感が大きいです。
うまく動かないときは、ブラウザの開発者ツール(F12キー)でコンソールを確認しましょう。エラーメッセージが表示されていれば、原因を特定する手がかりになります。
文化祭が終わったあとも、作ったコードは残ります。ポートフォリオに載せれば、自分のスキルを証明する作品になります。文化祭をきっかけに、プログラミングの楽しさを実感してください。
まとめ
- ✅ カウントダウンタイマー:
new Date()とsetIntervalで残り日数を表示 - ✅ スライドショー:配列 +
addEventListenerで写真を切り替え - ✅ どちらもコピペで追加でき、ファイル名や日付を書き換えるだけで使える
- ✅ JavaScriptの基本(変数・条件分岐・DOM操作)を実践的に学べる
あわせて読みたい記事
- 文化祭のウェブサイトを作ろう! — 文化祭サイトの基本的な作り方
- 文化祭サイトをスマホ対応にする方法 — レスポンシブデザイン入門
- 文化祭のデジタル看板をHTMLで作ろう! — 教室のタブレットに表示
- 文化祭のアンケートフォームを作ろう! — 来場者アンケートの作り方