Accordion (expandir/recolher)
Parte da seção JavaScript in Action do Journey de HTML da Coddy — lição 2 de 27.
Um accordion é um componente de UI que permite expandir e recolher seções de conteúdo. É frequentemente usado para FAQs (clique em uma pergunta → mostre a resposta, clique novamente → esconda-a).
A ideia é simples: quando você clica em um cabeçalho, o JavaScript alterna a visibilidade do conteúdo abaixo dele.
Pontos principais:
- Temos um botão e um elemento de conteúdo que está oculto por padrão (
display: none).
- Clicar no botão aciona a função e passa o ID do elemento que deve abrir.
- Dentro da função:
- Se o elemento já estiver sendo exibido (
display: block), nós o escondemos (display: none). - Caso contrário, nós o exibimos (
display: block).
- Se o elemento já estiver sendo exibido (
<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>Desafio
FácilNo momento, nosso acordeão tem três perguntas. Sua tarefa é adicionar uma quarta.
Passos:
- Crie um novo
<button>com o texto: Should I add milk or drink it black? - Conecte-o a um novo painel chamando a função
onclick="togglePanel('q4')" - Crie uma
<div>com oid="q4"e a classepanel. - Dentro da div, escreva a resposta:
It depends on your taste! Black coffee has stronger flavor, while milk softens the bitterness.
Experimente você mesmo
<!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>Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.