Zum Hauptinhalt springen Zur Dokumentennavigation springen
in English

Zusammenbruch

Schalten Sie die Sichtbarkeit von Inhalten in Ihrem Projekt mit einigen Klassen und unseren JavaScript-Plugins um.

Wie es funktioniert

Das Kollaps-JavaScript-Plugin dient zum Ein- und Ausblenden von Inhalten. Schaltflächen oder Anker werden als Auslöser verwendet, die bestimmten Elementen zugeordnet sind, die Sie umschalten. Das Reduzieren eines Elements animiert das heightvon seinem aktuellen Wert zu 0. Angesichts der Art und Weise, wie CSS mit Animationen umgeht, können Sie sie nicht paddingfür ein .collapseElement verwenden. Verwenden Sie stattdessen die Klasse als unabhängiges Wrapping-Element.

Der Animationseffekt dieser Komponente ist abhängig von der prefers-reduced-motionMedienanfrage. Weitere Informationen finden Sie im Abschnitt zur reduzierten Bewegung in unserer Dokumentation zur Barrierefreiheit .

Beispiel

Klicken Sie auf die Schaltflächen unten, um ein anderes Element über Klassenänderungen ein- und auszublenden:

  • .collapseInhalte verbirgt
  • .collapsingwird während der Übergänge angewendet
  • .collapse.showzeigt Inhalt

Generell empfehlen wir die Verwendung einer Schaltfläche mit dem data-bs-targetAttribut. Obwohl semantisch nicht empfehlenswert, können Sie auch einen Link mit dem hrefAttribut (und einem role="button") verwenden. In beiden Fällen ist das data-bs-toggle="collapse"erforderlich.

Some placeholder content for the collapse component. This panel is hidden by default but revealed when the user activates the relevant trigger.
<p>
  <a class="btn btn-primary" data-bs-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
    Link with href
  </a>
  <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
    Button with data-bs-target
  </button>
</p>
<div class="collapse" id="collapseExample">
  <div class="card card-body">
    Some placeholder content for the collapse component. This panel is hidden by default but revealed when the user activates the relevant trigger.
  </div>
</div>

Horizontal

Das Kollaps-Plugin unterstützt auch das horizontale Kollabieren. Fügen Sie die Modifikatorklasse hinzu, um die anstelle von .collapse-horizontalzu übergehen , und legen Sie a für das unmittelbar untergeordnete Element fest. Fühlen Sie sich frei, Ihren eigenen benutzerdefinierten Sass zu schreiben, Inline-Stile zu verwenden oder unsere Breiten-Dienstprogramme zu verwenden .widthheightwidth

Bitte beachten Sie, dass das folgende Beispiel zwar einen min-heightSatz enthält, um übermäßige Neuzeichnungen in unseren Dokumenten zu vermeiden, dies jedoch nicht ausdrücklich erforderlich ist. Nur das widthauf dem untergeordneten Element ist erforderlich.

This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
<p>
  <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
    Toggle width collapse
  </button>
</p>
<div style="min-height: 120px;">
  <div class="collapse collapse-horizontal" id="collapseWidthExample">
    <div class="card card-body" style="width: 300px;">
      This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
    </div>
  </div>
</div>

Mehrere Ziele

Ein <button>or <a>kann mehrere Elemente ein- und ausblenden, indem es sie mit einem Selektor in seinem hrefor - data-bs-targetAttribut referenziert. Mehrere <button>oder <a>können ein Element ein- und ausblenden, wenn sie es jeweils mit ihrem hrefor - data-bs-targetAttribut referenzieren

Some placeholder content for the first collapse component of this multi-collapse example. This panel is hidden by default but revealed when the user activates the relevant trigger.
Some placeholder content for the second collapse component of this multi-collapse example. This panel is hidden by default but revealed when the user activates the relevant trigger.
<p>
  <a class="btn btn-primary" data-bs-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
  <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
  <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target=".multi-collapse" aria-expanded="false" aria-controls="multiCollapseExample1 multiCollapseExample2">Toggle both elements</button>
</p>
<div class="row">
  <div class="col">
    <div class="collapse multi-collapse" id="multiCollapseExample1">
      <div class="card card-body">
        Some placeholder content for the first collapse component of this multi-collapse example. This panel is hidden by default but revealed when the user activates the relevant trigger.
      </div>
    </div>
  </div>
  <div class="col">
    <div class="collapse multi-collapse" id="multiCollapseExample2">
      <div class="card card-body">
        Some placeholder content for the second collapse component of this multi-collapse example. This panel is hidden by default but revealed when the user activates the relevant trigger.
      </div>
    </div>
  </div>
</div>

Barrierefreiheit

aria-expandedAchten Sie darauf , das Steuerelement hinzuzufügen . Dieses Attribut übermittelt explizit den aktuellen Status des reduzierbaren Elements, das an das Steuerelement gebunden ist, an Bildschirmlesegeräte und ähnliche Hilfstechnologien. Wenn das reduzierbare Element standardmäßig geschlossen ist, sollte das Attribut des Steuerelements den Wert haben aria-expanded="false". Wenn Sie festgelegt haben, dass das reduzierbare Element mithilfe der showKlasse standardmäßig geöffnet ist, legen Sie aria-expanded="true"stattdessen das Steuerelement fest. Das Plug-in schaltet dieses Attribut auf dem Steuerelement automatisch um, je nachdem, ob das reduzierbare Element geöffnet oder geschlossen wurde (über JavaScript oder weil der Benutzer ein anderes Steuerelement ausgelöst hat, das ebenfalls mit demselben reduzierbaren Element verknüpft ist). Wenn das HTML-Element des Steuerelements keine Schaltfläche ist (z. B. ein <a>oder <div>), wird das Attributrole="button"sollte dem Element hinzugefügt werden.

Wenn Ihr Steuerelement auf ein einzelnes reduzierbares Element abzielt – dh das data-bs-targetAttribut auf einen idSelektor zeigt – sollten Sie das aria-controlsAttribut dem Steuerelement hinzufügen, das die iddes reduzierbaren Elements enthält. Moderne Screenreader und ähnliche Hilfstechnologien nutzen dieses Attribut, um Benutzern zusätzliche Verknüpfungen bereitzustellen, mit denen sie direkt zum reduzierbaren Element selbst navigieren können.

Beachten Sie, dass die aktuelle Implementierung von Bootstrap die verschiedenen optionalen Tastaturinteraktionen, die im Akkordeonmuster WAI-ARIA Authoring Practices 1.1 beschrieben sind , nicht abdeckt – Sie müssen diese selbst mit benutzerdefiniertem JavaScript einbinden.

Sass

Variablen

$transition-collapse:         height .35s ease;
$transition-collapse-width:   width .35s ease;

Klassen

Collapse-Übergangsklassen sind in zu finden, scss/_transitions.scssda diese von mehreren Komponenten (collapse und Accordion) gemeinsam genutzt werden.

.collapse {
  &:not(.show) {
    display: none;
  }
}

.collapsing {
  height: 0;
  overflow: hidden;
  @include transition($transition-collapse);

  &.collapse-horizontal {
    width: 0;
    height: auto;
    @include transition($transition-collapse-width);
  }
}

Verwendungszweck

Das Kollaps-Plugin verwendet einige Klassen, um das schwere Heben zu bewältigen:

  • .collapseverbirgt den Inhalt
  • .collapse.showzeigt den Inhalt
  • .collapsingwird hinzugefügt, wenn der Übergang beginnt, und entfernt, wenn er endet

Diese Klassen finden Sie in _transitions.scss.

Über Datenattribute

Fügen Sie dem Element einfach data-bs-toggle="collapse"und ein hinzu data-bs-target, um automatisch die Steuerung eines oder mehrerer zusammenklappbarer Elemente zuzuweisen. Das data-bs-targetAttribut akzeptiert einen CSS-Selektor, auf den die Minimierung angewendet wird. Stellen Sie sicher, dass Sie die Klasse collapsedem zusammenklappbaren Element hinzufügen. Wenn Sie möchten, dass es standardmäßig geöffnet ist, fügen Sie die zusätzliche Klasse hinzu show.

Um einem zusammenklappbaren Bereich eine akkordeonartige Gruppenverwaltung hinzuzufügen, fügen Sie das Datenattribut hinzu data-bs-parent="#selector". Weitere Informationen finden Sie auf der Akkordeonseite .

Über JavaScript

Manuell aktivieren mit:

var collapseElementList = [].slice.call(document.querySelectorAll('.collapse'))
var collapseList = collapseElementList.map(function (collapseEl) {
  return new bootstrap.Collapse(collapseEl)
})

Optionen

Optionen können über Datenattribute oder JavaScript übergeben werden. Hängen Sie für Datenattribute den Optionsnamen an data-bs-, wie in data-bs-parent="".

Name Typ Standard Beschreibung
parent Selektor | jQuery-Objekt | DOM-Element false Wenn ein übergeordnetes Element angegeben ist, werden alle reduzierbaren Elemente unter dem angegebenen übergeordneten Element geschlossen, wenn dieses reduzierbare Element angezeigt wird. (ähnlich dem traditionellen Akkordeonverhalten - dies ist von der cardKlasse abhängig). Das Attribut muss auf den zusammenklappbaren Zielbereich gesetzt werden.
toggle boolesch true Schaltet das reduzierbare Element beim Aufruf um

Methoden

Asynchrone Methoden und Übergänge

Alle API-Methoden sind asynchron und starten einen Übergang . Sie kehren zum Aufrufer zurück, sobald der Übergang gestartet wird, aber bevor er endet . Außerdem wird ein Methodenaufruf einer Übergangskomponente ignoriert .

Weitere Informationen finden Sie in unserer JavaScript-Dokumentation .

Aktiviert Ihren Inhalt als zusammenklappbares Element. Akzeptiert optionale Optionen object.

Sie können eine Collapse-Instanz mit dem Konstruktor erstellen, zum Beispiel:

var myCollapse = document.getElementById('myCollapse')
var bsCollapse = new bootstrap.Collapse(myCollapse, {
  toggle: false
})
Methode Beschreibung
toggle Blendet ein reduzierbares Element ein oder aus. Gibt an den Aufrufer zurück, bevor das reduzierbare Element tatsächlich angezeigt oder ausgeblendet wurde (dh bevor das shown.bs.collapseor hidden.bs.collapse-Ereignis eintritt).
show Zeigt ein zusammenklappbares Element. Gibt an den Aufrufer zurück, bevor das zusammenklappbare Element tatsächlich gezeigt wurde (z. B. bevor das shown.bs.collapseEreignis eintritt).
hide Blendet ein zusammenklappbares Element aus. Gibt an den Aufrufer zurück, bevor das zusammenklappbare Element tatsächlich ausgeblendet wurde (z. B. bevor das hidden.bs.collapseEreignis eintritt).
dispose Zerstört den Kollaps eines Elements. (Entfernt gespeicherte Daten auf dem DOM-Element)
getInstance Statische Methode, mit der Sie die mit einem DOM-Element verknüpfte Collapse-Instanz abrufen können. Sie können sie wie folgt verwenden:bootstrap.Collapse.getInstance(element)
getOrCreateInstance Statische Methode, die eine mit einem DOM-Element verknüpfte Collapse-Instanz zurückgibt oder eine neue erstellt, falls sie nicht initialisiert wurde. Sie können es wie folgt verwenden:bootstrap.Collapse.getOrCreateInstance(element)

Veranstaltungen

Die Collapse-Klasse von Bootstrap macht einige Ereignisse verfügbar, um sich in die Collapse-Funktionalität einzuklinken.

Ereignistyp Beschreibung
show.bs.collapse Dieses Ereignis wird sofort ausgelöst, wenn die showInstanzmethode aufgerufen wird.
shown.bs.collapse Dieses Ereignis wird ausgelöst, wenn ein Minimierungselement für den Benutzer sichtbar gemacht wurde (wartet auf den Abschluss der CSS-Übergänge).
hide.bs.collapse Dieses Ereignis wird sofort ausgelöst, wenn die hideMethode aufgerufen wurde.
hidden.bs.collapse Dieses Ereignis wird ausgelöst, wenn ein Minimierungselement vor dem Benutzer ausgeblendet wurde (wartet, bis die CSS-Übergänge abgeschlossen sind).
var myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', function () {
  // do something...
})