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 height
vu sengem aktuelle Wäert op 0
. Gitt wéi CSS Animatiounen handhabt, kënnt Dir net padding
op engem .collapse
Element benotzen. Amplaz benotzt d'Klass als onofhängeg Wrapelement.
prefers-reduced-motion
Medienufro 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:
.collapse
verstoppt Inhalt.collapsing
gëtt während Iwwergäng applizéiert.collapse.show
weist Inhalt
Allgemeng recommandéiere mir e Knäppchen mat dem data-bs-target
Attribut ze benotzen. Obwuel net aus semantescher Siicht recommandéiert ass, kënnt Dir och e Link mam href
Attribut benotzen (an e role="button"
). A béide Fäll data-bs-toggle="collapse"
ass et néideg.
<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
Den Zesummebroch Plugin ënnerstëtzt och horizontal Zesummebroch. Füügt d' .collapse-horizontal
Modifikateur Klass fir den Iwwergang width
amplaz height
a setzt en width
op dat direkt Kand Element. Fillt Iech gratis Ären eegene personaliséierte Sass ze schreiwen, benotzt Inline Stiler oder benotzt eis Breet Utilities .
min-height
Set huet fir exzessiv Repaints an eisen Dokumenter ze vermeiden, ass dëst net explizit erfuerderlech.
Nëmmen d' width
Kand Element ass néideg.
<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>
Multiple Ziler
A <button>
oder <a>
kann verschidde Elementer weisen a verstoppen andeems se se mat engem Selektor a sengem href
oder data-bs-target
Attribut referenzéieren. Multiple <button>
oder <a>
kënnen en Element weisen a verstoppen wa se jidderee mat hirem href
oder data-bs-target
Attribut referenzéieren
<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-expanded
d'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 show
Klass 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 en eenzegt zesummeklappbare Element zielt - dh d' data-bs-target
Attribut weist op e id
Selektor - Dir sollt d' aria-controls
Attribut un d'Kontrollelement addéieren, mat dem id
vum zesummeklappbare Element. Modern Écran Lieser an ähnlech Assistenztechnologien 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 ofdeckt, déi am ARIA Authoring Practices Guide Akkordeonmuster beschriwwe sinn - Dir musst dës selwer mat personaliséierten JavaScript enthalen.
Sass
Variablen
$transition-collapse: height .35s ease;
$transition-collapse-width: width .35s ease;
Klassen
Zesummebroch Iwwergangsklassen kënne fonnt ginn, scss/_transitions.scss
well dës iwwer verschidde Komponenten gedeelt ginn (Zesummebroch an Akkordeon).
.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);
}
}
Benotzung
Den Zesummebroch Plugin benotzt e puer Klassen fir déi schwéier Lift ze handhaben:
.collapse
verstoppt den Inhalt.collapse.show
weist den Inhalt.collapsing
gë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-target
un d'Element fir automatesch Kontroll vun engem oder méi zesummeklappbare Elementer ze ginn. D' data-bs-target
Attribut akzeptéiert e CSS Selektor fir den Zesummebroch anzebezéien. Vergewëssert Iech d'Klass collapse
zum 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' Accordeon Säit fir méi Informatiounen.
Iwwer JavaScript
Aktivéiert manuell mat:
const collapseElementList = document.querySelectorAll('.collapse')
const collapseList = [...collapseElementList].map(collapseEl => new bootstrap.Collapse(collapseEl))
Optiounen
Wéi Optiounen kënnen iwwer Dateattributer oder JavaScript weidergeleet ginn, kënnt Dir en Optiounsnumm op data-bs-
, wéi an data-bs-animation="{value}"
. Vergewëssert Iech de Falltyp vum Optiounsnumm vun " camelCase " op " Kebab-Case " z'änneren wann Dir d'Optiounen iwwer Datenattributer passéiert. Zum Beispill benotzt data-bs-custom-class="beautifier"
amplaz data-bs-customClass="beautifier"
.
Zënter Bootstrap 5.2.0 ënnerstëtzen all Komponenten en experimentellen reservéierten Dateattribut, data-bs-config
deen eng einfach Komponentkonfiguratioun als JSON-String kann ënnerhuelen. Wann en Element data-bs-config='{"delay":0, "title":123}'
an data-bs-title="456"
Attributer huet, gëtt de Finale title
Wäert 456
an déi getrennten Dateattributter iwwerschreiden Wäerter, déi op data-bs-config
. Zousätzlech kënnen existent Datenattributer JSON Wäerter wéi data-bs-delay='{"show":0,"hide":150}'
.
Numm | Typ | Default | Beschreiwung |
---|---|---|---|
parent |
selector, DOM Element | null |
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 card Klass 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 .
Aktivéiert Ären Inhalt als zesummeklappbar Element. Akzeptéiert eng fakultativ Optiounen object
.
Dir kënnt eng Zesummebroch Instanz mam Konstruktor erstellen, zum Beispill:
const bsCollapse = new bootstrap.Collapse('#myCollapse', {
toggle: false
})
Method | Beschreiwung |
---|---|
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 mat engem DOM Element assoziéiert ass oder en neit erstellt am Fall datt et net initialiséiert gouf. Dir kënnt et esou benotzen bootstrap.Collapse.getOrCreateInstance(element) :. |
hide |
Verstoppt en zesummeklappbare Element. Gitt zréck op den Uruffer ier dat zesummeklappbare Element tatsächlech verstoppt gouf (zB ier d' hidden.bs.collapse Evenement geschitt ass). |
show |
Weist en zesummeklappbare Element. Gitt zréck op den Uruffer ier dat zesummeklappbare Element tatsächlech gewisen gouf (zB ier d' shown.bs.collapse Evenement geschitt ass). |
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.collapse oder hidden.bs.collapse geschitt). |
Evenementer
Dem Bootstrap seng Zesummebroch Klass weist e puer Eventer fir an d'Zesummefunktionalitéit unzehaken.
Event Typ | Beschreiwung |
---|---|
hide.bs.collapse |
Dëst Evenement gëtt direkt gebrannt wann d' hide Method 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). |
show.bs.collapse |
Dëst Event brennt direkt wann d' show Instanzmethod 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). |
const myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', event => {
// do something...
})