Akordeon (rozwijanie/zwijanie)
Część sekcji JavaScript w praktyce ścieżki HTML w Coddy. Lekcja 2 z 27.
Akordeon to komponent interfejsu użytkownika, który pozwala rozwijać i zwijać sekcje treści. Często używa się go w sekcjach FAQ (kliknij pytanie → pokaż odpowiedź, kliknij ponownie → ukryj ją).
Pomysł jest prosty: po kliknięciu nagłówka JavaScript przełącza widoczność znajdującej się pod nim treści.
Najważniejsze informacje:
- Mamy przycisk i element z treścią, który jest domyślnie ukryty (
display: none).
- Kliknięcie przycisku wywołuje funkcję i przekazuje identyfikator elementu, który powinien się otworzyć.
- Wewnątrz funkcji:
- Jeśli element jest już widoczny (
display: block), ukrywamy go (display: none). - W przeciwnym razie pokazujemy go (
display: block).
- Jeśli element jest już widoczny (
<button onclick="toggle('p1')">Question 1</button>
<div id="p1" style="display:none;">Answer 1</div>
<script>
function toggle(id) {
const element = document.getElementById(id);
if (element.style.display === "block") {
element.style.display = "none";
} else {
element.style.display = "block";
}
}
</script>Wyzwanie
ŁatwyW tej chwili nasz akordeon zawiera trzy pytania. Twoim zadaniem jest dodać czwarte.
Kroki:
- Utwórz nowy
<button>z tekstem: Should I add milk or drink it black? - Połącz go z nowym panelem, wywołując funkcję
onclick="togglePanel('q4')" - Utwórz
<div>zid="q4"i klasąpanel. - Wewnątrz elementu div wpisz odpowiedź:
It depends on your taste! Black coffee has stronger flavor, while milk softens the bitterness.
Spróbuj swoich sił
<!DOCTYPE html>
<html>
<head>
<title>FAQ Accordion</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>FAQ Coffee Lovers</h1>
<button class="accordion" onclick="togglePanel('q1')">What is the best way to brew coffee at home?</button>
<div id="q1" class="panel">
The French press and pour-over methods are popular for making rich, flavorful coffee at home.
</div>
<button class="accordion" onclick="togglePanel('q2')">Where do coffee beans come from?</button>
<div id="q2" class="panel">
Most coffee beans are grown in countries around the equator, such as Brazil, Ethiopia, and Colombia.
</div>
<button class="accordion" onclick="togglePanel('q3')">How late can I drink coffee?</button>
<div id="q3" class="panel">
It's best to avoid coffee 6 hours before bedtime, since caffeine can affect your sleep.
</div>
<script src="script.js"></script>
</body>
</html>Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji JavaScript w praktyce
1Interaktywność/komponenty UI
KartyAkordeon (rozwijanie/zwijanie)Modal (otwieranie/zamykanie)Menu rozwijane2Formularze i walidacja
Walidacja danych wejściowychNiestandardowe komunikaty o błędachPrzyciski przesyłaniaPoćwicz samodzielnie: Edytor online Web