自己紹介スライドショーを作ろう
💻 この課題はPCで実際にコードを書いて取り組みましょう
1
HTMLファイルを作ろう
スライド表示エリア、前へ/次へボタン、ページ番号を配置しましょう。
💡 ヒント
index.html, style.css, script.js を作成します。スライド表示エリアとナビゲーションボタンを配置します。
📝 模範解答を見る
⚠️ まず自分で考えてから見よう!
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>自己紹介スライドショー</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="app">
<div id="slide" class="slide"></div>
<div class="nav">
<button id="prev">← 前</button>
<button id="next">次 →</button>
</div>
<p class="counter" id="counter"></p>
</div>
<script src="script.js"></script>
</body>
</html>
2
スライドデータを配列で作ろう
自己紹介の内容を4枚以上のスライドデータとして配列で作りましょう。
📝 模範解答を見る
⚠️ まず自分で考えてから見よう!
const slides = [
{ title: "👋 はじめまして!", content: "名前:田中太郎<br>中学2年生です" },
{ title: "📚 好きな教科", content: "数学と体育が好きです!" },
{ title: "🎮 趣味", content: "ゲームとプログラミング" },
{ title: "🎯 将来の夢", content: "ゲームクリエイターになりたい!" }
];
3
スライド表示関数を作ろう
現在のスライドを表示する関数を作りましょう。ページ番号も更新します。
📝 模範解答を見る
⚠️ まず自分で考えてから見よう!
let current = 0;
const slideEl = document.getElementById("slide");
const counterEl = document.getElementById("counter");
function showSlide() {
const s = slides[current];
slideEl.innerHTML = "<h2>" + s.title + "</h2><p>" + s.content + "</p>";
counterEl.textContent = (current + 1) + " / " + slides.length;
}
showSlide();
4
前へ/次へボタンの処理を書こう
前へ/次へボタンでスライドを切り替える処理を書きましょう。最後まで行ったら最初に戻るようにします。
💡 ヒント
次へは current を1増やし、最後なら0に戻します。前へは1減らし、0未満なら最後に飛ばします。
📝 模範解答を見る
⚠️ まず自分で考えてから見よう!
document.getElementById("next").addEventListener("click", function() {
current = (current + 1) % slides.length;
showSlide();
});
document.getElementById("prev").addEventListener("click", function() {
current = (current - 1 + slides.length) % slides.length;
showSlide();
});
5
CSSでデザインを整えて完成!
CSSでカードデザインを整えて完成です!自分の情報に書き換えてみましょう。
💡 ヒント
カードを中央配置し、スライドエリアに min-height を設定してガタつきを防ぎます。
📝 模範解答を見る
⚠️ まず自分で考えてから見よう!
* { box-sizing: border-box; margin: 0; }
body { font-family: sans-serif; background: #f0f4ff; display: flex; justify-content: center; align-items: center; min-height: 100vh; }
.app { background: #fff; border-radius: 16px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); padding: 32px; width: 400px; text-align: center; }
.slide { min-height: 180px; display: flex; flex-direction: column; justify-content: center; align-items: center; }
.slide h2 { font-size: 1.3rem; color: #3a86ff; margin-bottom: 12px; }
.slide p { color: #555; line-height: 1.6; }
.nav { display: flex; justify-content: center; gap: 12px; margin-top: 20px; }
button { padding: 8px 20px; border: none; border-radius: 8px; background: #3a86ff; color: #fff; cursor: pointer; }
.counter { margin-top: 12px; font-size: 13px; color: #888; }🎯
📚 使う技術を学ぶ
⚠️ つまずいたら
- スタイルが反映されない — CSSファイルが読み込まれていない
- 画像が表示されない — 画像パスが間違っている
- スタイルが特定の要素に当たらない — セレクタ名のタイポ
- エラーメッセージの読み方