Nahugno
I-toggle ang visibility sa sulod sa imong proyekto gamit ang pipila ka klase ug among JavaScript plugins.
Giunsa kini paglihok
Ang collapse JavaScript plugin gigamit sa pagpakita ug pagtago sa sulod. Ang mga butones o mga angkla gigamit isip mga trigger nga gimapa sa piho nga mga elemento nga imong gi-toggle. Ang pag-collapse sa usa ka elemento magpa-animate sa height
gikan sa kasamtangang bili niini ngadto sa 0
. Gihatag kung giunsa pagdumala sa CSS ang mga animation, dili nimo magamit padding
sa usa ka .collapse
elemento. Hinuon, gamita ang klase isip usa ka independente nga elemento sa pagputos.
prefers-reduced-motion
pangutana sa media. Tan-awa ang
gikunhod nga seksyon sa paglihok sa among dokumentasyon sa accessibility .
Pananglitan
I-klik ang mga buton sa ubos aron ipakita ug itago ang laing elemento pinaagi sa mga kausaban sa klase:
.collapse
nagtago sa sulod.collapsing
gigamit sa panahon sa transisyon.collapse.show
nagpakita sa sulod
Kasagaran, girekomenda namon ang paggamit sa usa ka buton nga adunay data-bs-target
hiyas. Bisan kung dili girekomenda gikan sa usa ka semantiko nga punto sa pagtan-aw, mahimo ka usab mogamit usa ka link nga adunay href
hiyas (ug usa ka role="button"
). Sa duha ka mga kaso, ang data-bs-toggle="collapse"
gikinahanglan.
<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>
Pahigda
Ang collapse plugin nagsuporta usab sa horizontal collapsing. Idugang ang .collapse-horizontal
klase sa modifier aron mabalhin ang width
imbes height
ug itakda ang usa width
sa diha-diha nga elemento sa bata. Mobati nga gawasnon sa pagsulat sa imong kaugalingon nga kostumbre nga Sass, gamita ang inline nga mga istilo, o gamita ang among lapad nga mga gamit .
min-height
set aron malikayan ang sobra nga pagpintal sa among mga dokumento, dili kini klaro nga gikinahanglan.
Ang width
on the child element lang ang gikinahanglan.
<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>
Daghang mga target
Ang usa <button>
o <a>
mahimong magpakita ug magtago sa daghang mga elemento pinaagi sa pag-refer niini sa usa ka tigpili sa href
o data-bs-target
hiyas niini. Multiple <button>
o <a>
mahimong magpakita ug magtago sa usa ka elemento kung ang matag usa kanila maghisgot niini sa ilang href
o data-bs-target
attribute
<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>
Accessibility
Siguroha nga idugang aria-expanded
sa kontrol nga elemento. Kini nga hiyas tin-aw nga nagpahayag sa kasamtangan nga kahimtang sa nahugno nga elemento nga nahigot sa kontrol sa mga magbabasa sa screen ug susama nga mga teknolohiya sa pagtabang. Kung ang ma-collapsible nga elemento sirado pinaagi sa default, ang attribute sa control element kinahanglan adunay kantidad nga aria-expanded="false"
. Kung imong gitakda nga ang collapsible nga elemento mahimong bukas pinaagi sa default gamit ang show
klase, ibutang aria-expanded="true"
sa kontrol. Awtomatiko nga i-toggle sa plugin ang kini nga attribute sa kontrol base sa kung giablihan o gisirado ang collapsible nga elemento (pinaagi sa JavaScript, o tungod kay ang user nag-trigger og laing control element nga nahigot usab sa samang collapsible nga elemento). Kung ang elemento sa kontrol nga HTML dili usa ka buton (pananglitan, usa <a>
o <div>
), ang hiyasrole="button"
kinahanglan idugang sa elemento.
Kung ang imong kontrol nga elemento nagpunting sa usa ka nahugno nga elemento - ie ang data-bs-target
attribute nagpunting sa usa ka id
selector - kinahanglan nimong idugang ang aria-controls
attribute sa control element, nga adunay sulod id
sa collapsible nga elemento. Ang mga moderno nga screen reader ug susamang assistive nga mga teknolohiya naggamit niini nga attribute aron mahatagan ang mga user og dugang nga mga shortcut aron direkta nga maka-navigate sa collapsible nga elemento mismo.
Timan-i nga ang kasamtangang pagpatuman sa Bootstrap wala maglakip sa lain-laing opsyonal nga mga interaksyon sa keyboard nga gihulagway sa ARIA Authoring Practices Guide accordion pattern - kinahanglan nimo nga iapil kini sa imong kaugalingon sa custom JavaScript.
Sass
Mga variable
$transition-collapse: height .35s ease;
$transition-collapse-width: width .35s ease;
Mga klase
Ang mga collapse transition classes makit-an tungod scss/_transitions.scss
kay kini gipaambit sa daghang mga sangkap (collapse ug 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);
}
}
Paggamit
Ang collapse plugin naggamit sa pipila ka mga klase sa pagdumala sa bug-at nga pag-alsa:
.collapse
nagtago sa sulod.collapse.show
nagpakita sa sulod.collapsing
idugang kung magsugod na ang transisyon, ug tangtangon kung mahuman na
Kini nga mga klase makita sa _transitions.scss
.
Pinaagi sa data attributes
Idugang lang data-bs-toggle="collapse"
ug a data-bs-target
sa elemento aron awtomatik nga ma-assign ang kontrol sa usa o daghan pa nga nahugno nga mga elemento. Ang data-bs-target
hiyas modawat ug CSS selector aron magamit ang pagkahugno. Siguroha nga idugang ang klase collapse
sa collapsible nga elemento. Kung gusto nimo nga kini nga default bukas, idugang ang dugang nga klase show
.
Aron idugang ang sama sa akordyon nga pagdumala sa grupo ngadto sa usa ka ma-collapsible nga lugar, idugang ang data attribute data-bs-parent="#selector"
. Tan-awa ang panid sa akordyon alang sa dugang nga impormasyon.
Pinaagi sa JavaScript
I-enable ang mano-mano gamit ang:
const collapseElementList = document.querySelectorAll('.collapse')
const collapseList = [...collapseElementList].map(collapseEl => new bootstrap.Collapse(collapseEl))
Mga kapilian
Ingon nga ang mga kapilian mahimong ipasa pinaagi sa data attributes o JavaScript, mahimo nimong idugang ang ngalan sa opsyon sa data-bs-
, sama sa data-bs-animation="{value}"
. Siguruha nga usbon ang tipo sa kaso sa ngalan sa kapilian gikan sa " CamelCase " ngadto sa " kebab-case " kung ipasa ang mga kapilian pinaagi sa mga attribute sa datos. Pananglitan, gamita data-bs-custom-class="beautifier"
imbes nga data-bs-customClass="beautifier"
.
Ingon sa Bootstrap 5.2.0, ang tanan nga mga sangkap nagsuporta sa usa ka eksperimento nga gireserba nga kinaiya sa datos data-bs-config
nga mahimo’g ibutang ang yano nga pag-configure sa sangkap ingon usa ka string sa JSON. Kung ang usa ka elemento adunay data-bs-config='{"delay":0, "title":123}'
ug data-bs-title="456"
mga hiyas, ang katapusan title
nga kantidad mao ang 456
ug ang bulag nga mga hiyas sa datos mag-override sa mga kantidad nga gihatag sa data-bs-config
. Dugang pa, ang naglungtad nga mga hiyas sa datos makahimo sa pagbutang sa mga kantidad sa JSON sama sa data-bs-delay='{"show":0,"hide":150}'
.
Ngalan | Matang | Default | Deskripsyon |
---|---|---|---|
parent |
tigpili, elemento sa DOM | null |
Kung gihatag ang ginikanan, nan ang tanan nga mga collapsible nga elemento sa ilawom sa gitakda nga ginikanan pagasirhan kung kini nga collapsible nga butang gipakita. (parehas sa tradisyonal nga pamatasan sa akordyon - kini nagdepende sa card klase). Kinahanglang ibutang ang attribute sa target collapsible area. |
toggle |
boolean | true |
I-toggle ang ma-collapsible nga elemento sa pag-ampo. |
Pamaagi
Asynchronous nga mga pamaagi ug transisyon
Ang tanan nga mga pamaagi sa API kay asynchronous ug magsugod ug transisyon . Mibalik sila sa nanawag sa diha nga nagsugod ang transisyon apan sa wala pa kini matapos . Dugang pa, ang usa ka paagi sa pagtawag sa usa ka transisyon nga sangkap dili tagdon .
Tan-awa ang among JavaScript nga dokumentasyon para sa dugang nga impormasyon .
Gi-aktibo ang imong sulud ingon usa ka ma-collapsible nga elemento. Modawat ug opsyonal nga mga kapilian object
.
Makahimo ka og usa ka pananglitan sa pagkahugno sa constructor, pananglitan:
const bsCollapse = new bootstrap.Collapse('#myCollapse', {
toggle: false
})
Pamaagi | Deskripsyon |
---|---|
dispose |
Giguba ang pagkahugno sa usa ka elemento. (Gikuha ang gitipigan nga datos sa elemento sa DOM) |
getInstance |
Static nga pamaagi nga nagtugot kanimo nga makuha ang pagkahugno nga pananglitan nga nalangkit sa usa ka elemento sa DOM, mahimo nimo kining gamiton sama niini: bootstrap.Collapse.getInstance(element) . |
getOrCreateInstance |
Static nga pamaagi nga nagbalik sa usa ka pananglitan sa pagkahugno nga nalangkit sa usa ka elemento sa DOM o paghimo og bag-o kung wala kini gisugdan. Mahimo nimo kini gamiton sama niini: bootstrap.Collapse.getOrCreateInstance(element) . |
hide |
Nagtago sa usa ka ma-collapsible nga elemento. Mibalik sa nagtawag sa wala pa ang nahugno nga elemento gitago (pananglitan, sa wala pa hidden.bs.collapse mahitabo ang panghitabo). |
show |
Nagpakita sa usa ka ma-collapsible nga elemento. Mibalik sa nagtawag sa wala pa ang nahugno nga elemento sa tinuud gipakita (pananglitan, sa wala pa shown.bs.collapse mahitabo ang panghitabo). |
toggle |
I-toggle ang usa ka ma-collapsible nga elemento aron ipakita o gitago. Mibalik sa nagtawag sa wala pa ang nahugno nga elemento sa tinuud gipakita o gitago (ie sa wala pa mahitabo ang shown.bs.collapse o hidden.bs.collapse panghitabo). |
Mga panghitabo
Ang klase sa pagkahugno sa Bootstrap nagpadayag sa pipila ka mga panghitabo alang sa pag-hook sa pag-andar sa pagkahugno.
Uri sa panghitabo | Deskripsyon |
---|---|
hide.bs.collapse |
Kini nga panghitabo gipabuto dayon kung ang hide pamaagi gitawag na. |
hidden.bs.collapse |
Kini nga panghitabo gipabuto kung ang usa ka elemento sa pagkahugno gitago gikan sa tiggamit (maghulat nga makompleto ang mga transisyon sa CSS). |
show.bs.collapse |
Kini nga panghitabo nagdilaab dayon kung ang show pamaagi sa pananglitan gitawag. |
shown.bs.collapse |
Kini nga panghitabo gipabuto kung ang usa ka elemento sa pagkahugno nahimo nga makita sa tiggamit (maghulat nga makompleto ang mga transisyon sa CSS). |
const myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', event => {
// do something...
})