Wiesselt op den Haaptinhalt Wiesselt op d'Docs Navigatioun
in English

Zesummebroch

Wiesselt d'Visibilitéit vum Inhalt iwwer Äre Projet mat e puer Klassen an eise JavaScript Plugins.

Wéi et funktionnéiert

Den Zesummebroch JavaScript Plugin gëtt benotzt fir Inhalt ze weisen an ze verstoppen. Knäppercher oder Anker ginn als Ausléiser benotzt, déi op spezifesch Elementer mapéiert ginn, déi Dir wiesselt. Zesummebroch vun engem Element animéiert de heightvu sengem aktuelle Wäert op 0. Gitt wéi CSS Animatiounen handhabt, kënnt Dir net paddingop engem .collapseElement benotzen. Amplaz benotzt d'Klass als onofhängeg Wrapelement.

Den Animatiounseffekt vun dëser Komponent hänkt vun der prefers-reduced-motionMedienufro of. Kuckt d' Reduktiounsbewegungssektioun vun eiser Accessibilitéitsdokumentatioun .

Beispill

Klickt op d'Knäppercher hei ënnen fir en anert Element iwwer Klassenännerungen ze weisen an ze verstoppen:

  • .collapseverstoppt Inhalt
  • .collapsinggëtt während Iwwergäng applizéiert
  • .collapse.showweist Inhalt

Allgemeng recommandéiere mir e Knäppchen mat dem data-bs-targetAttribut ze benotzen. Obwuel net aus semantescher Siicht recommandéiert ass, kënnt Dir och e Link mam hrefAttribut benotzen (an e role="button"). A béide Fäll data-bs-toggle="collapse"ass et néideg.

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>

Multiple Ziler

A <button>oder <a>kann verschidde Elementer weisen a verstoppen andeems se se mat engem Selektor a sengem hrefoder data-bs-targetAttribut referenzéieren. Multiple <button>oder <a>kënnen en Element weisen a verstoppen wa se jidderee mat hirem hrefoder data-bs-targetAttribut referenzéieren

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>

Accessibilitéit

Vergewëssert Iech aria-expandedd'Kontrollelement ze addéieren. Dëst Attribut vermëttelt explizit den aktuellen Zoustand vum zesummeklappbare Element, deen un d'Kontroll gebonnen ass, un Écran Lieser an ähnlech Hëllefstechnologien. Wann dat zesummeklappbare Element par défaut zougemaach ass, soll d'Attribut um Kontrollelement e Wäert vun hunn aria-expanded="false". Wann Dir d'Zesummeklappbar Element als Standard opgemaach hutt mat der showKlass opzemaachen, setzt aria-expanded="true"d'Kontroll amplaz. De Plugin wiesselt automatesch dëst Attribut op der Kontroll baséiert op ob dat zesummeklappbare Element opgemaach oder zougemaach gouf oder net (iwwer JavaScript, oder well de Benotzer en anert Kontrollelement ausgeléist huet, dat och mam selwechte zesummeklappbare Element gebonnen ass). Wann den HTML-Element vum Kontrollelement net e Knäppchen ass (zB an <a>oder <div>), den Attributrole="button"soll dem Element dobäi ginn.

Wann Äert Kontrollelement op en eenzegt zesummeklappbare Element zielt - dh d' data-bs-targetAttribut weist op e idSelektor - Dir sollt d' aria-controlsAttribut un d'Kontrollelement addéieren, mat dem idvum zesummeklappbare Element. Modern Bildschirm Lieser an ähnlech Hëllefstechnologien benotzen dësen Attribut fir Benotzer zousätzlech Ofkiirzungen ze bidden fir direkt op dat zesummeklappbare Element selwer ze navigéieren.

Notéiert datt déi aktuell Implementatioun vum Bootstrap déi verschidde optional Tastaturinteraktiounen net deckt , déi am WAI-ARIA Authoring Practices 1.1 Akkordeonmuster beschriwwe ginn - Dir musst dës selwer mat personaliséierten JavaScript enthalen.

Sass

Variablen

$transition-collapse:         height .35s ease;

Klassen

Zesummebroch Iwwergangsklassen kënne fonnt ginn, scss/_transitions.scsswell dës iwwer verschidde Komponenten gedeelt ginn (Zesummebroch an Akkordeon).

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

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

Benotzung

Den Zesummebroch Plugin benotzt e puer Klassen fir déi schwéier Lift ze handhaben:

  • .collapseverstoppt den Inhalt
  • .collapse.showweist den Inhalt
  • .collapsinggëtt bäigefüügt wann den Iwwergank ufänkt, a geläscht wann et fäerdeg ass

Dës Klassen kënnen an fonnt ginn _transitions.scss.

Via daten Attributer

Füügt einfach data-bs-toggle="collapse"an en data-bs-targetun d'Element fir automatesch Kontroll vun engem oder méi zesummeklappbare Elementer ze ginn. D' data-bs-targetAttribut akzeptéiert e CSS Selektor fir den Zesummebroch anzebezéien. Vergewëssert Iech d'Klass collapsezum zesummeklappbare Element ze addéieren. Wann Dir wëllt datt et als Standard opmaacht, füügt déi zousätzlech Klass show.

Fir Akkordeonähnlech Gruppemanagement zu engem zesummeklappbare Gebitt ze addéieren, füügt d'Datenattribut data-bs-parent="#selector". Kuckt d'Demo fir dëst an Aktioun ze gesinn.

Iwwer JavaScript

Aktivéiert manuell mat:

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

Optiounen

Optiounen kënnen iwwer Datenattributer oder JavaScript weidergeleet ginn. Fir Datenattributer, fügen d'Optiounsnumm un data-bs-, wéi an data-bs-parent="".

Numm Typ Default Beschreiwung
parent selector | jQuery Objet | DOM Element false Wann Elterendeel gëtt, da ginn all zesummeklappbar Elementer ënner dem spezifizéierten Elterendeel zougemaach wann dësen zesummeklappbare Element gewise gëtt. (ähnlech wéi traditionell Akkordeonverhalen - dëst hänkt vun der cardKlass of). D'Attributer muss op der Zil- zesummeklappbare Beräich gesat ginn.
toggle boolesch true Wiesselt dat zesummeklappbare Element op Uruff

Methoden

Asynchron Methoden an Iwwergäng

All API Methoden sinn asynchron a starten en Iwwergang . Si ginn zréck op den Uruffer soubal den Iwwergang ugefaang ass, awer ier en eriwwer ass . Zousätzlech gëtt e Methodruff op eng Iwwergangskomponent ignoréiert .

Kuckt eis JavaScript Dokumentatioun fir méi Informatioun .

Aktivéiert Ären Inhalt als zesummeklappbar Element. Akzeptéiert eng fakultativ Optiounen object.

Dir kënnt eng Zesummebroch Instanz mam Konstruktor erstellen, zum Beispill:

var myCollapse = document.getElementById('myCollapse')
var bsCollapse = new bootstrap.Collapse(myCollapse, {
  toggle: false
})
Method Beschreiwung
toggle Wiesselt en zesummeklappbare Element fir ze weisen oder verstoppt. Gitt zréck op den Uruffer ier dat zesummeklappbare Element tatsächlech gewisen oder verstoppt gouf (dh ier d' Evenement shown.bs.collapseoder hidden.bs.collapsegeschitt).
show Weist en zesummeklappbare Element. Gitt zréck op den Uruffer ier dat zesummeklappbare Element tatsächlech gewisen gouf (zB ier d' shown.bs.collapseEvenement geschitt ass).
hide Verstoppt en zesummeklappbare Element. Gitt zréck op den Uruffer ier dat zesummeklappbare Element tatsächlech verstoppt gouf (zB ier d' hidden.bs.collapseEvenement geschitt ass).
dispose Zerstéiert den Zesummebroch vun engem Element. (läscht gespäichert Daten am DOM Element)
getInstance Statesch Method déi Iech erlaabt den Zesummebroch Instanz mat engem DOM Element assoziéiert ze kréien, Dir kënnt et esou benotzen:bootstrap.Collapse.getInstance(element)
getOrCreateInstance Statesch Method déi eng Zesummebroch Instanz zréckginn, déi un engem DOM Element assoziéiert ass oder eng nei erstellt am Fall wou se net initialiséiert gouf. Dir kënnt et esou benotzen:bootstrap.Collapse.getOrCreateInstance(element)

Evenementer

Dem Bootstrap seng Zesummebroch Klass weist e puer Eventer fir an d'Zesummefunktionalitéit unzehaken.

Event Typ Beschreiwung
show.bs.collapse Dëst Event brennt direkt wann d' showInstanzmethod genannt gëtt.
shown.bs.collapse Dëst Evenement gëtt ausgeléist wann e Zesummebroch Element fir de Benotzer siichtbar gemaach gouf (waart bis CSS Iwwergäng fäerdeg sinn).
hide.bs.collapse Dëst Evenement gëtt direkt gebrannt wann d' hideMethod genannt gouf.
hidden.bs.collapse Dëst Evenement gëtt ausgeléist wann en Zesummebroch Element vum Benotzer verstoppt ass (waart op CSS Iwwergäng fir fäerdeg ze maachen).
var myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', function () {
  // do something...
})