インタラクティブなFAQアコーディオン
CoddyのHTMLジャーニー「JavaScript in Action」セクションの一部 — レッスン 24/27。
チャレンジ
簡単いくつかの質問があるシンプルなFAQページがあります。この種のデザインは非常に一般的です。ユーザーが質問をクリックすると、隠れていた回答がスムーズにスライドして表示されます。同時に、「+」記号を「×」に回転させて、セクションが開いていることを示すことができます。
1つの質問があるFAQセクションがあります。あなたの仕事は、それをインタラクティブにすることです:
JavaScriptの場合:
- FAQの質問にクリックイベントリスナーを追加します
- クリックされたときに、回答の "show" クラスを切り替えます(toggle)
CSSの場合:
次のようなスタイルを追加します:
- FAQの回答に "show" クラスがある場合、その opacity を 1 に、max-height を 300px に設定します
自分で試してみよう
<!DOCTYPE html>
<html>
<head>
<title>FAQ Challenge</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>FAQ – Healthy Lifestyle</h1>
<div class="faq">
<div class="faq-item">
<div class="faq-question">
<span>What does a balanced diet mean?</span>
<span>+</span>
</div>
<div class="faq-answer">
A balanced diet includes a variety of foods — fruits, vegetables, whole grains, lean proteins, and healthy fats — in the right proportions to keep your body nourished and energized.
</div>
</div>
</div>
<script src="script.js"></script>
</body>
</html>