Pagbagsak
I-toggle ang visibility ng content sa iyong proyekto gamit ang ilang klase at ang aming mga JavaScript plugin.
Paano ito gumagana
Ang collapse JavaScript plugin ay ginagamit upang ipakita at itago ang nilalaman. Ginagamit ang mga button o anchor bilang mga trigger na nakamapa sa mga partikular na elemento na iyong i-toggle. Ang pag-collapse ng isang elemento ay magpapasigla sa height
mula sa kasalukuyang halaga nito hanggang sa 0
. Dahil sa kung paano pinangangasiwaan ng CSS ang mga animation, hindi mo magagamit padding
sa isang .collapse
elemento. Sa halip, gamitin ang klase bilang isang independiyenteng elemento ng pambalot.
prefers-reduced-motion
query ng media. Tingnan ang
seksyon ng pinababang paggalaw ng aming dokumentasyon ng pagiging naa-access .
Halimbawa
I-click ang mga button sa ibaba upang ipakita at itago ang isa pang elemento sa pamamagitan ng mga pagbabago sa klase:
.collapse
nagtatago ng nilalaman.collapsing
ay inilapat sa panahon ng mga transition.collapse.show
nagpapakita ng nilalaman
Sa pangkalahatan, inirerekomenda namin ang paggamit ng isang button na may data-target
katangian. Bagama't hindi inirerekomenda mula sa isang semantic na pananaw, maaari ka ring gumamit ng isang link na may href
katangian (at isang role="button"
). Sa parehong mga kaso, ang data-toggle="collapse"
ay kinakailangan.
<p>
<a class="btn btn-primary" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
Link with href
</a>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
Button with data-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>
Pahalang
Sinusuportahan din ng collapse plugin ang pahalang na pagbagsak. Idagdag ang .width
klase ng modifier upang i-transition ang sa width
halip na height
at itakda ang isang width
sa agarang elemento ng bata. Huwag mag-atubiling magsulat ng sarili mong custom na Sass, gumamit ng mga inline na istilo, o gamitin ang aming mga width utilities .
min-height
set upang maiwasan ang labis na repaints sa aming mga doc, hindi ito tahasang kinakailangan.
Ang width
on the child element lang ang kailangan.
<p>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
Toggle width collapse
</button>
</p>
<div style="min-height: 120px;">
<div class="collapse width" id="collapseWidthExample">
<div class="card card-body" style="width: 320px;">
This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
</div>
</div>
</div>
Maramihang mga target
A <button>
o <a>
maaaring magpakita at magtago ng maraming elemento sa pamamagitan ng pagtukoy sa kanila ng isang JQuery selector sa href
o data-target
attribute nito. Marami <button>
o <a>
maaaring magpakita at magtago ng isang elemento kung ire-reference nila ito sa kanilang href
o data-target
attribute
<p>
<a class="btn btn-primary" data-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-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>
Halimbawa ng akurdyon
Gamit ang bahagi ng card , maaari mong i-extend ang default na pag-collapse na gawi upang lumikha ng accordion. Upang maayos na makamit ang estilo ng akurdyon, siguraduhing gamitin .accordion
bilang isang pambalot.
.show
klase.
<div class="accordion" id="accordionExample">
<div class="card">
<div class="card-header" id="headingOne">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Collapsible Group Item #1
</button>
</h2>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
<div class="card-body">
Some placeholder content for the first accordion panel. This panel is shown by default, thanks to the <code>.show</code> class.
</div>
</div>
</div>
<div class="card">
<div class="card-header" id="headingTwo">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Collapsible Group Item #2
</button>
</h2>
</div>
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
<div class="card-body">
Some placeholder content for the second accordion panel. This panel is hidden by default.
</div>
</div>
</div>
<div class="card">
<div class="card-header" id="headingThree">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
Collapsible Group Item #3
</button>
</h2>
</div>
<div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
<div class="card-body">
And lastly, the placeholder content for the third and final accordion panel. This panel is hidden by default.
</div>
</div>
</div>
</div>
Accessibility
Tiyaking idagdag aria-expanded
sa control element. Ang katangiang ito ay tahasang naghahatid ng kasalukuyang estado ng nati-collaps na elemento na nakatali sa kontrol sa mga screen reader at mga katulad na pantulong na teknolohiya. Kung ang collapsible element ay sarado bilang default, ang attribute sa control element ay dapat may value na aria-expanded="false"
. Kung itinakda mo ang nako-collaps na elemento na bukas bilang default gamit ang show
klase, itakda aria-expanded="true"
na lang sa control. Awtomatikong i-toggle ng plugin ang attribute na ito sa control batay sa kung nabuksan o isinara ang collapsible na elemento (sa pamamagitan ng JavaScript, o dahil nag-trigger ang user ng isa pang control element na nakatali din sa parehong collapsible na elemento). Kung ang elementong HTML ng control element ay hindi isang button (hal., an <a>
or <div>
), ang attributerole="button"
dapat idagdag sa elemento.
Kung ang iyong control element ay nagta-target sa isang solong collapsible na elemento – ibig sabihin, ang data-target
attribute ay tumuturo sa isang id
selector – dapat mong idagdag ang aria-controls
attribute sa control element, na naglalaman ng id
ng collapsible na elemento. Ginagamit ng mga makabagong screen reader at katulad na mga teknolohiyang pantulong ang katangiang ito upang bigyan ang mga user ng karagdagang mga shortcut upang direktang mag-navigate sa mismong nako-collaps na elemento.
Tandaan na ang kasalukuyang pagpapatupad ng Bootstrap ay hindi sumasaklaw sa iba't ibang mga pakikipag-ugnayan sa keyboard na inilarawan sa ARIA Authoring Practices Guide accordion pattern - kakailanganin mong isama ang mga ito sa iyong sarili sa custom na JavaScript.
Paggamit
Gumagamit ang collapse plugin ng ilang klase upang mahawakan ang mabigat na pag-aangat:
.collapse
nagtatago ng nilalaman.collapse.show
nagpapakita ng nilalaman.collapsing
ay idinaragdag kapag nagsimula ang paglipat, at inalis kapag natapos na ito
Ang mga klase na ito ay matatagpuan sa _transitions.scss
.
Sa pamamagitan ng mga katangian ng data
Idagdag lang data-toggle="collapse"
at a data-target
sa elemento para awtomatikong magtalaga ng kontrol sa isa o higit pang mga collapsible na elemento. Tumatanggap ang data-target
attribute ng isang CSS selector para ilapat ang pag-collapse. Tiyaking idagdag ang klase collapse
sa collapsible na elemento. Kung gusto mo itong maging default na bukas, idagdag ang karagdagang klase show
.
Upang magdagdag ng mala-accordion na pamamahala ng pangkat sa isang collapsible na lugar, idagdag ang attribute ng data data-parent="#selector"
. Sumangguni sa demo upang makita ito sa pagkilos.
Sa pamamagitan ng JavaScript
Paganahin nang manu-mano gamit ang:
$('.collapse').collapse()
Mga pagpipilian
Maaaring ipasa ang mga opsyon sa pamamagitan ng mga katangian ng data o JavaScript. Para sa mga katangian ng data, idagdag ang pangalan ng opsyon sa data-
, tulad ng sa data-parent=""
.
Pangalan | Uri | Default | Paglalarawan |
---|---|---|---|
magulang | tagapili | jQuery object | DOM na elemento | mali | Kung ang magulang ay ibinigay, ang lahat ng mga collapsible na elemento sa ilalim ng tinukoy na magulang ay isasara kapag ang collapsible na item na ito ay ipinakita. (katulad ng tradisyonal na pag-uugali ng akurdyon - ito ay nakasalalay sa card klase). Kailangang itakda ang attribute sa target na collapsible area. |
magpalipat-lipat | boolean | totoo | I-toggle ang collapsible na elemento sa invocation |
Paraan
Mga asynchronous na pamamaraan at paglipat
Ang lahat ng mga pamamaraan ng API ay asynchronous at nagsisimula ng isang paglipat . Bumalik sila sa tumatawag sa sandaling magsimula ang paglipat ngunit bago ito matapos . Bilang karagdagan, babalewalain ang isang method call sa isang transitioning component .
Tingnan ang aming dokumentasyon ng JavaScript para sa higit pang impormasyon .
.collapse(options)
Ina-activate ang iyong content bilang isang collapsible na elemento. Tumatanggap ng opsyonal na opsyon object
.
$('#myCollapsible').collapse({
toggle: false
})
.collapse('toggle')
I-toggle ang isang nako-collaps na elemento sa ipinapakita o nakatago. Bumabalik sa tumatawag bago aktwal na naipakita o naitago ang nati-collaps na elemento (ibig sabihin, bago mangyari ang shown.bs.collapse
o hidden.bs.collapse
kaganapan).
.collapse('show')
Nagpapakita ng nati-collapse na elemento. Bumabalik sa tumatawag bago aktwal na naipakita ang collapsible na elemento (ibig sabihin, bago shown.bs.collapse
mangyari ang kaganapan).
.collapse('hide')
Itinatago ang isang collapsible na elemento. Bumabalik sa tumatawag bago pa talaga naitago ang collapsible na elemento (ibig sabihin, bago hidden.bs.collapse
mangyari ang kaganapan).
.collapse('dispose')
Sinisira ang pagbagsak ng isang elemento.
Mga kaganapan
Ang collapse class ng Bootstrap ay naglalantad ng ilang mga kaganapan para sa hooking sa collapse functionality.
Uri ng kaganapan | Paglalarawan |
---|---|
show.bs.collapse | Agad na gagana ang kaganapang ito kapag show tinawag ang paraan ng instance. |
ipinapakita.bs.collapse | Ang kaganapang ito ay pinapagana kapag ang isang elemento ng pag-collapse ay ginawang nakikita ng user (maghihintay na makumpleto ang mga transition ng CSS). |
hide.bs.collapse | Ang kaganapang ito ay agad na pinapagana kapag ang hide pamamaraan ay tinawag na. |
hidden.bs.collapse | Ang kaganapang ito ay pinapagana kapag ang isang elemento ng pag-collapse ay naitago mula sa user (maghihintay na makumpleto ang mga transition ng CSS). |
$('#myCollapsible').on('hidden.bs.collapse', function () {
// do something...
})