Hrun
Skiptu um sýnileika efnis í verkefninu þínu með nokkrum námskeiðum og JavaScript viðbætur okkar.
Hvernig það virkar
Samruna JavaScript viðbótin er notuð til að sýna og fela efni. Hnappar eða akkeri eru notuð sem kveikjur sem eru varpaðar á tiltekna þætti sem þú skiptir um. Með því að draga saman frumefni verður hreyfimyndin height
frá núverandi gildi þess í 0
. Í ljósi þess hvernig CSS meðhöndlar hreyfimyndir geturðu ekki notað padding
á .collapse
frumefni. Í staðinn skaltu nota bekkinn sem sjálfstæðan umbúðaþátt.
prefers-reduced-motion
miðlunarfyrirspurninni. Sjá
kaflann um minni hreyfingu í aðgengisskjölunum okkar .
Dæmi
Smelltu á hnappana hér að neðan til að sýna og fela annan þátt með bekkjarbreytingum:
.collapse
felur efni.collapsing
er beitt við umskipti.collapse.show
sýnir efni
Almennt mælum við með því að nota hnapp með data-bs-target
eigindinni. Þó ekki sé mælt með merkingarfræðilegu sjónarhorni geturðu líka notað tengil með href
eigindinni (og a role="button"
). Í báðum tilvikum data-bs-toggle="collapse"
er krafist.
<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>
Mörg skotmörk
A <button>
eða <a>
getur sýnt og falið marga þætti með því að vísa til þeirra með veljara í eiginleikum þess href
eða data-bs-target
. Margfeldi <button>
eða <a>
getur sýnt og falið frumefni ef hver vísar í það með eigin href
eða data-bs-target
eigindinni sinni
<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>
Aðgengi
Vertu viss um að bæta aria-expanded
við stjórnhlutanum. Þessi eiginleiki miðlar beinlínis núverandi ástandi samanbrjótanlegra þátta sem er bundinn við stýringu við skjálesara og svipaða hjálpartækni. Ef sambrjótanlegu einingunni er sjálfgefið lokað ætti eigindin á stýrieiningunni að hafa gildið aria-expanded="false"
. Ef þú hefur stillt samanbrjótanlega þáttinn þannig að hann sé opinn sjálfgefið með því að nota show
bekkinn, stilltu aria-expanded="true"
þá á stýringuna í staðinn. Viðbótin mun sjálfkrafa skipta um þessa eigind á stjórninni byggt á því hvort sambrjótanlegur þáttur hefur verið opnaður eða ekki (með JavaScript, eða vegna þess að notandinn kveikti á öðrum stjórnhluta sem einnig er bundinn við sama samanbrjótanlega þáttinn). Ef HTML-eining stjórnunareiningarinnar er ekki hnappur (td an <a>
eða <div>
), eigindinrole="button"
ætti að bæta við þáttinn.
Ef stjórneiningin þín miðar á einn samanbrjótanlegan þátt – þ.e. data-bs-target
eigindin vísar á id
veljara – ættirðu að bæta aria-controls
eigindinni við stjórneininguna, sem inniheldur id
sambrjótanlega þáttinn. Nútíma skjálesarar og svipuð hjálpartækni nýta sér þennan eiginleika til að veita notendum viðbótarflýtileiðir til að fletta beint að sjálfum samanbrjótanlegum þættinum.
Athugaðu að núverandi útfærsla Bootstrap nær ekki yfir hinar ýmsu valfrjálsu lyklaborðssamskipti sem lýst er í WAI-ARIA Authoring Practices 1.1 harmonikkumynstrinu - þú þarft að láta þær fylgja sjálfur með sérsniðnu JavaScript.
Sass
Breytur
$transition-collapse: height .35s ease;
Flokkar
Hægt er að finna hrunskiptaflokka þar scss/_transitions.scss
sem þeim er deilt á marga hluti (hrun og harmonikku).
.collapse {
&:not(.show) {
display: none;
}
}
.collapsing {
height: 0;
overflow: hidden;
@include transition($transition-collapse);
}
Notkun
Hrunviðbótin notar nokkra flokka til að takast á við þungar lyftingar:
.collapse
felur innihaldið.collapse.show
sýnir innihaldið.collapsing
er bætt við þegar umskiptin hefjast og fjarlægð þegar þeim lýkur
Þessa flokka er að finna í _transitions.scss
.
Í gegnum gagnaeiginleika
Bættu bara við data-bs-toggle="collapse"
og a data-bs-target
við þáttinn til að úthluta sjálfkrafa stjórn á einum eða fleiri samanbrjótanlegum þáttum. Eigindin data-bs-target
samþykkir CSS val til að beita hruninu á. Vertu viss um að bæta bekknum collapse
við samanbrjótanlega þáttinn. Ef þú vilt að það opni sjálfgefið skaltu bæta við viðbótarflokknum show
.
Til að bæta harmonikkulíkri hópstjórnun við samanbrjótanlegt svæði skaltu bæta við gagnaeigindinni data-bs-parent="#selector"
. Skoðaðu kynninguna til að sjá þetta í aðgerð.
Með JavaScript
Virkja handvirkt með:
var collapseElementList = [].slice.call(document.querySelectorAll('.collapse'))
var collapseList = collapseElementList.map(function (collapseEl) {
return new bootstrap.Collapse(collapseEl)
})
Valmöguleikar
Hægt er að senda valkosti í gegnum gagnaeiginleika eða JavaScript. Fyrir gagnaeiginleika skaltu bæta heiti valkostsins við data-bs-
, eins og í data-bs-parent=""
.
Nafn | Tegund | Sjálfgefið | Lýsing |
---|---|---|---|
parent |
veljara | jQuery hlutur | DOM þáttur | false |
Ef foreldri er gefið upp, þá verður öllum samanbrjótanlegum þáttum undir tilgreindu foreldri lokað þegar þetta samanbrjótanlega atriði er sýnt. (svipað og hefðbundin harmonikkuhegðun - þetta er háð card bekknum). Eigindin verður að vera stillt á samanbrjótanlegu marksvæðinu. |
toggle |
Boolean | true |
Kveikir á samanbrjótanlegu þættinum við ákall |
Aðferðir
Ósamstilltar aðferðir og umskipti
Allar API aðferðir eru ósamstilltar og hefja umskipti . Þeir snúa aftur til þess sem hringir um leið og umskiptin eru hafin en áður en þeim lýkur . Að auki verður aðferðakall á umbreytingarhluta hunsað .
Virkjar efnið þitt sem samanbrjótanlegan þátt. Samþykkir valfrjálsa valkosti object
.
Þú getur búið til samdráttartilvik með smiðinum, til dæmis:
var myCollapse = document.getElementById('myCollapse')
var bsCollapse = new bootstrap.Collapse(myCollapse, {
toggle: false
})
Aðferð | Lýsing |
---|---|
toggle |
Skiptir um að fellanlegur þáttur sé sýndur eða falinn. Snýr aftur til þess sem hringir áður en fellanlegur þáttur hefur verið sýndur eða falinn (þ.e. áður en atburðurinn shown.bs.collapse eða hidden.bs.collapse á sér stað). |
show |
Sýnir samanbrjótanlegan þátt. Snýr aftur til þess sem hringir áður en samanbrjótanlegur þáttur hefur verið sýndur (td áður en shown.bs.collapse atburðurinn á sér stað). |
hide |
Felur samanbrjótanlegt frumefni. Snýr aftur til þess sem hringir áður en fellanlegur þáttur hefur raunverulega verið falinn (td áður en hidden.bs.collapse atburðurinn á sér stað). |
dispose |
Eyðileggur hrun frumefnis. (Fjarlægir vistuð gögn á DOM-einingunni) |
getInstance |
Statísk aðferð sem gerir þér kleift að fá hruntilvikið tengt DOM frumefni, þú getur notað það svona:bootstrap.Collapse.getInstance(element) |
getOrCreateInstance |
Statísk aðferð sem skilar hruntilviki sem tengist DOM-einingu eða býr til nýjan ef það var ekki frumstillt. Þú getur notað það svona:bootstrap.Collapse.getOrCreateInstance(element) |
Viðburðir
Hrunflokkur Bootstrap afhjúpar nokkra atburði til að tengja sig við hrunvirkni.
Tegund viðburðar | Lýsing |
---|---|
show.bs.collapse |
Þessi atburður ræsir strax þegar show tilviksaðferðin er kölluð. |
shown.bs.collapse |
Þessi atburður er ræstur þegar hrunþáttur hefur verið gerður sýnilegur notanda (mun bíða eftir að CSS umbreytingum ljúki). |
hide.bs.collapse |
Þessi atburður er ræstur strax þegar hide aðferðin hefur verið kölluð. |
hidden.bs.collapse |
Þessi atburður er ræstur þegar hrunþáttur hefur verið falinn fyrir notandanum (bíður eftir að CSS umbreytingum ljúki). |
var myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', function () {
// do something...
})