Fara í aðalefni Farðu í skjalaleiðsögn
Check

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 heightfrá núverandi gildi þess í 0. Í ljósi þess hvernig CSS meðhöndlar hreyfimyndir geturðu ekki notað paddingá .collapsefrumefni. Í staðinn skaltu nota bekkinn sem sjálfstæðan umbúðaþátt.

Hreyfiáhrif þessa íhluts eru háð prefers-reduced-motionmið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:

  • .collapsefelur efni
  • .collapsinger beitt við umskipti
  • .collapse.showsýnir efni

Almennt mælum við með því að nota hnapp með data-bs-targeteigindinni. Þó ekki sé mælt með merkingarfræðilegu sjónarhorni geturðu líka notað tengil með hrefeigindinni (og a role="button"). Í báðum tilvikum data-bs-toggle="collapse"er krafist.

Some placeholder content for the collapse component. This panel is hidden by default but revealed when the user activates the relevant trigger.
html
<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>

Lárétt

Hrunviðbótin styður einnig lárétta hrun. Bættu við .collapse-horizontalbreytingaflokknum til að skipta um í widthstaðinn fyrir heightog stilltu a widthá strax undirlag. Ekki hika við að skrifa þitt eigið sérsniðna Sass, notaðu innbyggða stíla eða notaðu breiddartólin okkar .

Vinsamlegast athugaðu að þó að dæmið hér að neðan hafi min-heightsett til að forðast óhóflegar endurmálun í skjölunum okkar, þá er þetta ekki beinlínis krafist. Aðeins widther áskilið á barninu.

This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
html
<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>

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 hrefeða data-bs-target. Margfeldi <button>eða <a>getur sýnt og falið frumefni ef hver vísar í það með eigin hrefeða data-bs-targeteigindinni sinni

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.
html
<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-expandedvið 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 showbekkinn, 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-targeteigindin vísar á idveljara – ættirðu að bæta aria-controlseigindinni við stjórneininguna, sem inniheldur idsambrjó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 valkvæða lyklaborðssamskipti sem lýst er í ARIA Authoring Practices Guide harmonikkumynstrinu - þú verður að láta þær fylgja sjálfur með sérsniðnu JavaScript.

Sass

Breytur

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

Flokkar

Hægt er að finna hrunskiptaflokka þar scss/_transitions.scsssem þeim er deilt á marga hluti (hrun og harmonikku).

.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);
  }
}

Notkun

Hrunviðbótin notar nokkra flokka til að takast á við þungar lyftingar:

  • .collapsefelur innihaldið
  • .collapse.showsýnir innihaldið
  • .collapsinger 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-targetvið þáttinn til að úthluta sjálfkrafa stjórn á einum eða fleiri samanbrjótanlegum þáttum. Eigindin data-bs-targetsamþykkir CSS val til að beita hruninu á. Vertu viss um að bæta bekknum collapsevið 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". Sjá harmonikkusíðuna fyrir frekari upplýsingar.

Með JavaScript

Virkja handvirkt með:

const collapseElementList = document.querySelectorAll('.collapse')
const collapseList = [...collapseElementList].map(collapseEl => new bootstrap.Collapse(collapseEl))

Valmöguleikar

Þar sem hægt er að senda valkosti í gegnum gagnaeiginleika eða JavaScript geturðu bætt valkostsheiti við data-bs-, eins og í data-bs-animation="{value}". Gakktu úr skugga um að breyta tilfelli tegundar valmöguleikans úr " camelCase " í " kebab-case " þegar þú sendir valkostina í gegnum gagnaeiginleika. Notaðu til dæmis data-bs-custom-class="beautifier"í staðinn fyrir data-bs-customClass="beautifier".

Frá og með Bootstrap 5.2.0 styðja allir íhlutir tilrauna frátekinn gagnaeiginleika data-bs-configsem getur hýst einfalda íhlutastillingu sem JSON streng. Þegar eining hefur data-bs-config='{"delay":0, "title":123}'og eiginleika verður data-bs-title="456"lokagildið og aðskildu gagnaeiginirnar munu hnekkja gildum sem gefin eru á . Að auki geta núverandi gagnaeiginleikar hýst JSON gildi eins og .title456data-bs-configdata-bs-delay='{"show":0,"hide":150}'

Nafn Tegund Sjálfgefið Lýsing
parent veljara, DOM frumefni null 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áð cardbekknum). 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ð .

Sjá JavaScript skjölin okkar fyrir frekari upplýsingar .

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:

const bsCollapse = new bootstrap.Collapse('#myCollapse', {
  toggle: false
})
Aðferð Lýsing
dispose Eyðileggur hrun frumefnis. (Fjarlægir vistuð gögn á DOM-einingunni)
getInstance Static 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).
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.collapseatburðurinn á 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.collapseatburðurinn á sér stað).
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.collapseeða hidden.bs.collapseá sér stað).

Viðburðir

Hrunflokkur Bootstrap afhjúpar nokkra atburði til að tengja sig við hrunvirkni.

Tegund viðburðar Lýsing
hide.bs.collapse Þessi atburður er ræstur strax þegar hideað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).
show.bs.collapse Þessi atburður ræsir strax þegar showtilviksað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).
const myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', event => {
  // do something...
})