Wie man erstellt: Klapptexte / Akkordeon

Lernen Sie, wie Sie ein Akkordeon (klappbares Inhalt) erstellen.

Akkordione

Akkordione sind sehr nützlich, wenn Sie zwischen Verbergen und Anzeigen von großem Inhalt wechseln möchten:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Selbst ausprobieren

Erstellen Sie ein Akkordeon

Erster Schritt - Fügen Sie HTML hinzu:

<button class="accordion">Abschnitt 1</button>
<div class="panel">
  <p>Lorem ipsum...</p>
</div>
<button class="accordion">Abschnitt 2</button>
<div class="panel">
  <p>Lorem ipsum...</p>
</div>
<button class="accordion">Abschnitt 3</button>
<div class="panel">
  <p>Lorem ipsum...</p>
</div>

Zweiter Schritt - Fügen Sie CSS hinzu:

Stellen Sie das Akkordeon-Stil ein

/* Setzen Sie die Styles für die Schaltflächen zum Öffnen und Schließen des Akkordeon-Panels */
.accordion {
  background-color: #eee;
  color: #444;
  cursor: pointer;
  padding: 18px;
  width: 100%;
  text-align: left;
  border: none;
  outline: none;
  transition: 0.4s;
}
/* Fügen Sie einer Schaltfläche eine Hintergrundfarbe hinzu, wenn sie geklickt wird (durch JS die Klasse .active hinzufügen), sowie wenn der Mauszeiger darauf gehovert wird (Hover) */
.active, .accordion:hover {
  background-color: #ccc;
}
/* Fügen Sie dem Akkordeon-Panels Styles hinzu. Beachten Sie: Es ist standardmäßig ausgeblendet */
.panel {
  padding: 0 18px;
  background-color: white;
  display: none;
  overflow: hidden;
}

Dritter Schritt - Fügen Sie JavaScript hinzu:

var acc = document.getElementsByClassName("accordion");
var i;
for (i = 0; i < acc.length; i++) {
  acc[i].addEventListener("click", function() {
    /* Wechseln Sie zwischen Hinzufügen und Entfernen der "active"-Klasse, um die Schaltflächen des Kontrollpanels hervorzuheben */
    this.classList.toggle("active");
    /* Wechseln Sie zwischen Verbergen und Anzeigen des Aktiven Panels */
    var panel = this.nextElementSibling;
    if (panel.style.display === "block") {
      panel.style.display = "none";
    } else {
      panel.style.display = "block";
    }
  });
}

Selbst ausprobieren

Animated accordion (slide down)

To create an animated accordion, add max-height: 0,overflow: hidden and max-height property transition effect.

Then, use JavaScript to calculate and set the panel height according to different screen sizes: max-heightTo achieve the sliding effect of the content, add:

<style>
.panel {
  padding: 0 18px;
  background-color: white;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.2s ease-out;
}
</style>
<script>
var acc = document.getElementsByClassName("accordion");
var i;
for (i = 0; i < acc.length; i++) {
  acc[i].addEventListener("click", function() {
    this.classList.toggle("active");
    var panel = this.nextElementSibling;
    if (panel.style.maxHeight) {
      panel.style.maxHeight = null;
    } else {
      panel.style.maxHeight = panel.scrollHeight + "px";
    }
  });
}
</script>

Selbst ausprobieren

Add icon

Add a symbol to each button to indicate whether the collapsible content is open or closed:

.accordion:after {
  content: '\02795'; /* "plus" (plus sign) Unicode character */
  font-size: 13px;
  color: #777;
  float: right;
  margin-left: 5px;
}
.active:after {
  content: "\2796"; /* "minus" (minus sign) Unicode character */
}

Selbst ausprobieren