Tsibela kumxholo ophambili Tsiba uye kukhangelo lwamaxwebhu

Guqula ukubonakala komxholo kuyo yonke iprojekthi yakho ngeeklasi ezimbalwa kunye neeplagi zethu zeJavaScript.

Ingaba isebenza kanjani

Iplagi yeJavaScript yokudilika isetyenziselwa ukubonisa nokufihla umxholo. Amaqhosha okanye iiankile zisetyenziswa njengezitshisi ezizotywe kwimaphu kwizinto ezithile oziguqulayo. Ukuthoba isiqalelo kuyakuphilisa i heightukusuka kwixabiso layo langoku ukuya kwi 0. Unikwe indlela iCSS ephatha ngayo oopopayi, awukwazi ukusebenzisa paddinginto .collapseethile. Endaweni yoko, sebenzisa iklasi njengento ezimeleyo yokusonga.

Isiphumo soopopayi seli candelo sixhomekeke prefers-reduced-motionkumbuzo wemidiya. Jonga icandelo leentshukumo ezincitshisiweyo kuxwebhu lwethu lofikelelo .

Umzekelo

Cofa amaqhosha angezantsi ukuze ubonise kwaye ufihle enye into ngotshintsho lweklasi:

  • .collapseifihla umxholo
  • .collapsingisetyenziswa ngexesha lotshintsho
  • .collapse.showibonisa umxholo

Ngokuqhelekileyo, sincoma ukusebenzisa iqhosha data-bs-targetelinophawu. Ngelixa ungacetyiswanga ukusuka kwindawo yokujonga yesemantic, ungasebenzisa ikhonkco kunye hrefnophawu (kunye ne role="button"). Kuzo zombini ezi meko, data-bs-toggle="collapse"kuyafuneka.

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>

Ukuthe tye

Iplagin yokudilika ikwaxhasa ukudilika okuthe tye. Yongeza .collapse-horizontaludidi lwesilungisi kwinguqu widthendaweni heightkwaye usete u a widthkwinto yomntwana kwangoko. Zive ukhululekile ukubhala eyakho iSass yesiko, sebenzisa izitayile ezingaphakathi, okanye usebenzise izixhobo zethu zobubanzi .

Nceda uqaphele ukuba lo mzekelo ungezantsi min-heightuneseti yokuphepha ukupeyintwa kwakhona okugqithisileyo kumaxwebhu ethu, oku akufuneki ngokucacileyo. Kuphela widthinto efunekayo kumntwana.

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

Iithagethi ezininzi

I-A <button>okanye <a>ingabonisa kwaye ifihle izinto ezininzi ngokuzibhekisa kumkhethi kuyo hrefokanye data-bs-targetkuphawu. Zininzi <button>okanye <a>zinokubonisa kwaye zifihle into ukuba nganye ibhekisa kuyo hrefkunye data-bs-targetnophawu

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>

Ukufikeleleka

Qinisekisa ukuba wongeza aria-expandedkwinto yolawulo. Olu phawu lubonisa ngokucacileyo imeko yangoku yento eqengqelekayo ebotshelelwe kulawulo kwizifundi zesikrini kunye nobuchwephesha obuncedisayo obufanayo. Ukuba isiqalelo esiqengqelekayo sivalwe ngokungagqibekanga, uphawu loyelelwano lwento yolawulo kufuneka lube nexabiso aria-expanded="false". Ukuba usete into eqengqelekayo ukuba ivuleke ngokungagqibekanga usebenzisa showiklasi, misela aria-expanded="true"kulawulo endaweni yoko. Iplagi iya kuzitshintsha ngokuzenzekela olu phawu kulawulo olusekwe ekubeni ngaba into eqengqelekayo ivuliwe okanye ayivalwanga (ngeJavaScript, okanye kuba umsebenzisi eqalise enye into yolawulo nayo ibotshelelwe kwinto enye eqengqelekayo). Ukuba isiqalelo solawulo se HTML asiloqhosha (umzekelo, i <a>okanye <div>), uphawurole="button"kufuneka yongezwe kwisiqalelo.

Ukuba isiqalelo sakho solawulo sijolise kwinto enye eqengqelekayo - oko kukuthi data-bs-targetuphawu lwalatha idkumkhethi - kufuneka wongeze aria-controlsuphawu lwento yolawulo, equlathe idinto eqengqelekayo. Izifundi zesikrini zanamhlanje kunye neetekhnoloji ezincedisayo ezifanayo zisebenzisa olu phawu ukunika abasebenzisi iindlela ezimfutshane zokuya ngqo kwinto egobekayo ngokwayo.

Qaphela ukuba uphumezo lwangoku lweBootstrap aluquki iindlela ezahlukeneyo zokusebenzisa ibhodi yezitshixo ezikhethiweyo ezichazwe kwi- WAI-ARIA yoBugunyaziso bokuSebenza 1.1 iphethini yeaccordion - kuya kufuneka uzibandakanye ngokwakho kunye neJavaScript yesiko.

Sass

Izinto eziguquguqukayo

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

Iiklasi

Ukugoqa kweeklasi zenguqu kunokufunyanwa scss/_transitions.scssnjengoko ezi kwabelwana ngazo kumacandelo amaninzi (ukuwa kunye ne-accordion).

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

Ukusetyenziswa

Iplagin yokudilika isebenzisa iiklasi ezimbalwa ukuphatha ukuphakamisa okunzima:

  • .collapseifihla umxholo
  • .collapse.showibonisa umxholo
  • .collapsingyongezwa xa inguqu iqala, kwaye isuswe xa igqibile

Ezi klasi zinokufumaneka kwi _transitions.scss.

Ngeempawu zedatha

Yongeza nje data-bs-toggle="collapse"kunye no data-bs-target-a kwisiqalelo ukwabela ngokuzenzekelayo ulawulo lwento enye okanye ezininzi eziqengqelekayo. Uphawu data-bs-targetloyelelwano lwamkela umkhethi we-CSS ukuze kufakwe ukutshitshiswa. Qinisekisa ukuba wongeza iklasi collapsekwinto eqengqelekayo. Ukuba ungathanda ukuba ivuleke ngokungagqibekanga, yongeza udidi olongezelelweyo show.

Ukongeza ulawulo lweqela olufana ne-accordion kwindawo egotywayo, yongeza uphawu loyelelwano lwedatha data-bs-parent="#selector". Jonga kwiphepha leaccordion ngolwazi oluthe kratya.

NgeJavaScript

Vula ngesandla nge:

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

Iinketho

Iinketho zinokugqithiswa ngeempawu zedatha okanye iJavaScript. Kuphawu lwedatha, faka igama lokhetho ku data-bs-, njengakwi data-bs-parent="".

Igama Uhlobo Ukuhlala kukho Inkcazo
parent umkhethi | jQuery into | Into ye-DOM false Ukuba umzali unikiwe, ke zonke izinto eziqengqelekayo phantsi komzali ochaziweyo ziya kuvalwa xa le nto iqengqelekayo iboniswa. (efana nokuziphatha kwe-accordion yendabuko - oku kuxhomekeke cardkwiklasi). Uphawu kufuneka lubekwe kwindawo ekujoliswe kuyo egotywayo.
toggle boolean true Qwalasela into eqengqelekayo kubizo

Iindlela

Iindlela zeAsynchronous kunye notshintsho

Zonke iindlela ze-API zi -asynchronous kwaye ziqala utshintsho . Babuyela kumnxeba ngokukhawuleza nje ukuba inguqu iqalisiwe kodwa ingekapheli . Ukongeza, ukufowunelwa kwendlela kwicandelo lenguquko kuya kuhoywa .

Jonga uxwebhu lwethu lweJavaScript ngolwazi olungakumbi .

Yenza umxholo wakho ube yinto eqengqelekayo. Yamkela iinketho ozikhethelayo object.

Unokwenza umzekelo wokudilika kunye nomakhi, umzekelo:

var myCollapse = document.getElementById('myCollapse')
var bsCollapse = new bootstrap.Collapse(myCollapse, {
  toggle: false
})
Indlela Inkcazo
toggle Iguqulela into eqengqelekayo ukuze iboniswe okanye ifihliwe. Ibuyisela kumnxeba phambi kokuba into eqengqelekayo iboniswe okanye ifihliwe (okt phambi kokuba isiganeko shown.bs.collapseokanye hidden.bs.collapseisiganeko senzeke).
show Ibonisa into eqengqelekayo. Ibuyisela kumnxeba phambi kokuba into eqengqelekayo iboniswe (umzekelo, phambi kokuba shown.bs.collapseisiganeko senzeke).
hide Ifihla into eqengqelekayo. Ibuyisela kumnxeba phambi kokuba into eqengqelekayo ifihliwe (umzekelo, phambi kokuba hidden.bs.collapseisiganeko senzeke).
dispose Itshabalalisa ukuwa kwento. (Isusa idatha egciniweyo kwisiqalelo seDOM)
getInstance Indlela engatshintshiyo ekuvumela ukuba ufumane umzekelo wokudilika onxulunyaniswa nento yeDOM, ungayisebenzisa ngolu hlobo:bootstrap.Collapse.getInstance(element)
getOrCreateInstance Indlela engatshintshiyo ebuyisela umzekelo wokudilika onxulunyaniswa nento yeDOM okanye yenze entsha ukuba ayikhange iqalwe. Ungayisebenzisa ngolu hlobo:bootstrap.Collapse.getOrCreateInstance(element)

Iziganeko

Iklasi yokuwa yeBootstrap iveza iminyhadala embalwa yokuhuka ekusebenzeni kokuwa.

Uhlobo lomsitho Inkcazo
show.bs.collapse Esi siganeko sivutha ngokukhawuleza xa showkubizwa indlela yomzekelo.
shown.bs.collapse Esi siganeko sigxothwa xa into yokudilika yenziwe yabonakala kumsebenzisi (iya kulinda iinguqu zeCSS ukuba zigqibe).
hide.bs.collapse Esi siganeko sigxothwa ngokukhawuleza xa hideindlela sele ibizwa.
hidden.bs.collapse Esi siganeko sigxothwa xa into yokudilika ifihliwe kumsebenzisi (iya kulinda iinguqu zeCSS ukuba zigqibe).
var myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', function () {
  // do something...
})