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 height
von seinem aktuellen Wert zu 0
. Angesichts der Art und Weise, wie CSS mit Animationen umgeht, können Sie sie nicht padding
für ein .collapse
Element verwenden. Verwenden Sie stattdessen die Klasse als unabhängiges Wrapping-Element.
prefers-reduced-motion
Medienanfrage. 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:
.collapse
Inhalte verbirgt.collapsing
wird während der Übergänge angewendet.collapse.show
zeigt Inhalt
Generell empfehlen wir die Verwendung einer Schaltfläche mit dem data-target
Attribut. Obwohl semantisch nicht empfehlenswert, können Sie auch einen Link mit dem href
Attribut (und einem role="button"
) verwenden. In beiden Fällen ist das data-toggle="collapse"
erforderlich.
<p>
<a class="btn btn-primary" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
Link with href
</a>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
Button with data-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 .width
zu ü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 .width
height
width
min-height
Satz enthält, um übermäßige Neuzeichnungen in unseren Dokumenten zu vermeiden, dies jedoch nicht ausdrücklich erforderlich ist.
Nur das width
auf dem untergeordneten Element ist erforderlich.
<p>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
Toggle width collapse
</button>
</p>
<div style="min-height: 120px;">
<div class="collapse width" id="collapseWidthExample">
<div class="card card-body" style="width: 320px;">
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 JQuery-Selektor in seinem href
or - data-target
Attribut referenziert. Mehrere <button>
oder <a>
können ein Element ein- und ausblenden, wenn sie es jeweils mit ihrem href
or - data-target
Attribut referenzieren
<p>
<a class="btn btn-primary" data-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-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>
Beispiel Akkordeon
Mithilfe der Kartenkomponente können Sie das standardmäßige Minimierungsverhalten erweitern, um ein Akkordeon zu erstellen. Um den Akkordeonstil richtig zu erreichen, verwenden Sie es unbedingt .accordion
als Hülle.
.show
Klasse standardmäßig angezeigt.
<div class="accordion" id="accordionExample">
<div class="card">
<div class="card-header" id="headingOne">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Collapsible Group Item #1
</button>
</h2>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
<div class="card-body">
Some placeholder content for the first accordion panel. This panel is shown by default, thanks to the <code>.show</code> class.
</div>
</div>
</div>
<div class="card">
<div class="card-header" id="headingTwo">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Collapsible Group Item #2
</button>
</h2>
</div>
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
<div class="card-body">
Some placeholder content for the second accordion panel. This panel is hidden by default.
</div>
</div>
</div>
<div class="card">
<div class="card-header" id="headingThree">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
Collapsible Group Item #3
</button>
</h2>
</div>
<div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
<div class="card-body">
And lastly, the placeholder content for the third and final accordion panel. This panel is hidden by default.
</div>
</div>
</div>
</div>
Barrierefreiheit
aria-expanded
Achten 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 show
Klasse 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-target
Attribut auf einen id
Selektor zeigt – sollten Sie das aria-controls
Attribut dem Steuerelement hinzufügen, das die id
des 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 Tastaturinteraktionen, die im Akkordeonmuster des ARIA Authoring Practices Guide beschrieben sind, nicht abdeckt – Sie müssen diese selbst mit benutzerdefiniertem JavaScript einbinden.
Verwendungszweck
Das Kollaps-Plugin verwendet einige Klassen, um das schwere Heben zu bewältigen:
.collapse
verbirgt den Inhalt.collapse.show
zeigt den Inhalt.collapsing
wird 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-toggle="collapse"
und ein hinzu data-target
, um automatisch die Steuerung eines oder mehrerer zusammenklappbarer Elemente zuzuweisen. Das data-target
Attribut akzeptiert einen CSS-Selektor, auf den die Minimierung angewendet wird. Stellen Sie sicher, dass Sie die Klasse collapse
dem 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-parent="#selector"
. Sehen Sie sich die Demo an, um dies in Aktion zu sehen.
Über JavaScript
Manuell aktivieren mit:
$('.collapse').collapse()
Optionen
Optionen können über Datenattribute oder JavaScript übergeben werden. Hängen Sie für Datenattribute den Optionsnamen an data-
, wie in data-parent=""
.
Name | Typ | Standard | Beschreibung |
---|---|---|---|
Elternteil | Selektor | jQuery-Objekt | DOM-Element | FALSCH | 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 card Klasse abhängig). Das Attribut muss auf den zusammenklappbaren Zielbereich gesetzt werden. |
Umschalten | boolesch | Stimmt | 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 .
.collapse(options)
Aktiviert Ihren Inhalt als zusammenklappbares Element. Akzeptiert optionale Optionen object
.
$('#myCollapsible').collapse({
toggle: false
})
.collapse('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.collapse
or hidden.bs.collapse
-Ereignis eintritt).
.collapse('show')
Zeigt ein zusammenklappbares Element. Gibt an den Aufrufer zurück, bevor das reduzierbare Element tatsächlich angezeigt wurde (dh bevor das shown.bs.collapse
Ereignis eintritt).
.collapse('hide')
Blendet ein zusammenklappbares Element aus. Gibt an den Aufrufer zurück, bevor das zusammenklappbare Element tatsächlich ausgeblendet wurde (dh bevor das hidden.bs.collapse
Ereignis eintritt).
.collapse('dispose')
Zerstört den Kollaps eines Elements.
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 show Instanzmethode aufgerufen wird. |
gezeigt.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 hide Methode 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). |
$('#myCollapsible').on('hidden.bs.collapse', function () {
// do something...
})