firodanan'ny
Ampifamadiho ny fahitana ny atiny manerana ny tetikasanao miaraka amin'ny kilasy vitsivitsy sy ny plugins JavaScript.
Ahoana ny fiasan'izany
Ny plugin JavaScript collapse dia ampiasaina hanehoana sy hanafenana votoaty. Ny bokotra na vatofantsika dia ampiasaina ho trigger izay voasoritra amin'ny singa manokana avadikao. Ny fandrotsahana singa iray dia hampihetsika ny height
avy amin'ny sandany ankehitriny ho 0
. Raha jerena ny fomba fitantanana ny sary mihetsika dia tsy azonao ampiasaina padding
amin'ny .collapse
singa iray ny CSS. Ampiasao kosa ny kilasy ho singa famonosana mahaleo tena.
prefers-reduced-motion
fangatahan'ny haino aman-jery ny fiantraikan'ity singa ity. Jereo ny
fizarana mihetsika mihena amin'ny antontan-taratasinay momba ny fahafahana miditra .
OHATRA
Kitiho ny bokotra etsy ambany mba hampisehoana sy hanafenana singa hafa amin'ny alàlan'ny fanovana kilasy:
.collapse
manafina votoaty.collapsing
dia ampiharina mandritra ny tetezamita.collapse.show
mampiseho votoaty
Amin'ny ankapobeny, manoro hevitra izahay hampiasa bokotra misy ny data-bs-target
toetra. Na dia tsy soso-kevitra amin'ny fomba fijery semantika aza, dia azonao atao koa ny mampiasa rohy misy ny href
toetra (sy a role="button"
). Amin'ireo tranga roa ireo, data-bs-toggle="collapse"
dia ilaina ny.
<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>
Marindrano
Ny plugin collapse koa dia manohana ny firodanan'ny horizontaly. Ampio ny .collapse-horizontal
kilasy modifier hamindrana ny width
fa tsy height
ary mametraka a width
amin'ny singa zaza eo no ho eo. Aza misalasala manoratra Sass mahazatra anao manokana, mampiasa fomba an-tserasera, na ampiasao ny fitaovanay malalaka .
min-height
andian-dahatsoratra aza ny ohatra etsy ambany mba hisorohana ny fandokoana be loatra ao amin'ny dokanay, dia tsy takiana mazava izany.
Ny width
singa amin'ny zaza ihany no ilaina.
<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>
Tanjona marobe
A <button>
na <a>
afaka mampiseho sy manafina singa maromaro amin'ny fanondroana azy ireo miaraka amin'ny mpifidy ao amin'ny href
toetrany data-bs-target
. Maro <button>
na <a>
afaka mampiseho sy manafina singa iray raha samy milaza izany miaraka amin'ny toetrany href
na ny data-bs-target
toetrany
Ampifamadiho ny singa voalohany
<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
Ataovy azo antoka ny manampy aria-expanded
ny singa fanaraha-maso. Ity toetra ity dia mampita mazava ny toetry ny singa mirodana mifatotra amin'ny fanaraha-maso amin'ny mpamaky efijery sy ny teknolojia fanampiana mitovy amin'izany. Raha mihidy amin'ny alàlan'ny default ny singa azo rava, dia tokony hanana sanda aria-expanded="false"
. Raha toa ianao ka nametraka ny singa azo rava ho misokatra amin'ny alàlan'ny fampiasana ny show
kilasy, dia apetraho aria-expanded="true"
amin'ny fanaraha-maso kosa. Ny plugin dia hanova ho azy io toetra io amin'ny fanaraha-maso mifototra amin'ny hoe nosokafana na nikatona ilay singa azo rava (tamin'ny alàlan'ny JavaScript, na satria ny mpampiasa dia niteraka singa fanaraha-maso hafa mifamatotra amin'ilay singa azo rava ihany koa). Raha tsy bokotra ny singa HTML an'ny singa fanaraha-maso (ohatra, <a>
na <div>
), ny toetrarole="button"
tokony ampiana amin'ny singa.
Raha mikendry singa tokana azo harodana ny singanao - izany hoe ny data-bs-target
toetra dia manondro id
mpifidy - tokony ampidirinao amin'ny aria-controls
singa fanaraha-maso ny toetra, misy ny id
singa azo rava. Ireo mpamaky efijery maoderina sy ireo teknolojia fanampiana mitovy amin'izany dia mampiasa an'io toetra io mba hanomezana ireo mpampiasa hitsin-dàlana fanampiny hivezivezy mivantana mankany amin'ilay singa azo rava.
Mariho fa ny fampiharana an'i Bootstrap amin'izao fotoana izao dia tsy mandrakotra ireo fifaneraserana amin'ny klavier isan-karazany voalaza ao amin'ny ARIA Authoring Practices Guide accordion pattern - mila ampidirinao amin'ny JavaScript mahazatra ianao.
Sass
hiovaova
$transition-collapse: height .35s ease;
$transition-collapse-width: width .35s ease;
fianarana
Ny kilasin'ny tetezamita mirodana dia azo jerena ao scss/_transitions.scss
satria zaraina amin'ny singa maro (firodana sy akorandriaka).
.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);
}
}
Fampiasana
Ny plugin collapse dia mampiasa kilasy vitsivitsy hifehezana ny fampiakarana mavesatra:
.collapse
manafina ny votoatiny.collapse.show
mampiseho ny votoatiny.collapsing
ampiana rehefa manomboka ny tetezamita, ary esorina rehefa tapitra
Ireo kilasy ireo dia azo jerena ao amin'ny _transitions.scss
.
Amin'ny alàlan'ny data attributes
Ampio fotsiny data-bs-toggle="collapse"
ary a data-bs-target
amin'ilay singa mba hanendry ho azy ny fanaraha-maso ny singa iray na maromaro mirodana. Ny data-bs-target
toetra dia manaiky mpifidy CSS hampiharana ny fianjerana. Ataovy azo antoka ny manampy ny kilasy collapse
amin'ny singa azo rava. Raha tianao ny hisokatra ho default dia ampio ny kilasy fanampiny show
.
Mba hanampiana ny fitantanana vondrona mitovy amin'ny akorandriaka amin'ny faritra azo harodana, ampio ny toetran'ny data data-bs-parent="#selector"
. Jereo ny pejy accordion raha mila fanazavana fanampiny.
Amin'ny JavaScript
Alefa tanana amin'ny:
const collapseElementList = document.querySelectorAll('.collapse')
const collapseList = [...collapseElementList].map(collapseEl => new bootstrap.Collapse(collapseEl))
FANDIKANA
Satria azo ampitaina amin'ny alàlan'ny toetran'ny data na JavaScript ny safidy, azonao atao ny manisy anarana safidy amin'ny data-bs-
, toy ny ao amin'ny data-bs-animation="{value}"
. Ataovy azo antoka fa hanova ny karazana tranga amin'ny anarana safidy avy amin'ny " CamelCase " ho " kebab-case " rehefa mandalo ny safidy amin'ny alàlan'ny toetran'ny data. Ohatra, ampiasao data-bs-custom-class="beautifier"
fa tsy data-bs-customClass="beautifier"
.
Amin'ny Bootstrap 5.2.0, ny singa rehetra dia manohana toetra angon-drakitra natokana ho an'ny fanandramanadata-bs-config
izay afaka mametraka ny fandrindrana singa tsotra ho tady JSON. Rehefa manana data-bs-config='{"delay":0, "title":123}'
sy data-bs-title="456"
toetra ny singa iray, dia ny title
sanda farany 456
ary ny toetran'ny angon-drakitra misaraka dia hanongotra ny sanda omena amin'ny data-bs-config
. Ankoatr'izay, ny toetran'ny data efa misy dia afaka mametraka ny sanda JSON toy ny data-bs-delay='{"show":0,"hide":150}'
.
Anarana | Type | toerana misy anao | Description |
---|---|---|---|
parent |
selector, singa DOM | null |
Raha omena ray aman-dreny, dia hikatona avokoa ny singa azo harodana eo ambanin'ny ray aman-dreny voatondro rehefa aseho ity singa azo harodana ity. (mitovitovy amin'ny fihetsika accordion nentim-paharazana - miankina amin'ny card kilasy izany). Ny toetra dia tsy maintsy apetraka eo amin'ny faritra kendrena mirodana. |
toggle |
boolean | true |
Manova ny singa azo harodana amin'ny fiantsoana. |
fomba
Fomba sy fifindrana asynchronous
Ny fomba API rehetra dia asynchronous ary manomboka tetezamita . Miverina any amin'ny mpiantso izy ireo raha vao manomboka ny tetezamita fa alohan'ny hifarana . Ho fanampin'izany, tsy hojerena ny fiantsoana fomba iray amin'ny singa tetezamita .
Jereo ny antontan-taratasintsika JavaScript raha mila fanazavana fanampiny .
Manetsika ny atiny ho singa azo harodana. Manaiky safidy azo atao object
.
Azonao atao ny mamorona ohatra mirodana miaraka amin'ny mpanamboatra, ohatra:
const bsCollapse = new bootstrap.Collapse('#myCollapse', {
toggle: false
})
FOMBA | Description |
---|---|
dispose |
Manimba ny firodanan'ny singa iray. (Esory ny angona voatahiry amin'ny singa DOM) |
getInstance |
Ny fomba static izay ahafahanao mahazo ny ohatra fianjerana mifandray amin'ny singa DOM, azonao ampiasaina toy izao: bootstrap.Collapse.getInstance(element) . |
getOrCreateInstance |
Static method which returns a collapse instance associated to a DOM element or create a new one in case it wasn’t initialized. You can use it like this: bootstrap.Collapse.getOrCreateInstance(element) . |
hide |
Hides a collapsible element. Returns to the caller before the collapsible element has actually been hidden (e.g., before the hidden.bs.collapse event occurs). |
show |
Shows a collapsible element. Returns to the caller before the collapsible element has actually been shown (e.g., before the shown.bs.collapse event occurs). |
toggle |
Toggles a collapsible element to shown or hidden. Returns to the caller before the collapsible element has actually been shown or hidden (i.e. before the shown.bs.collapse or hidden.bs.collapse event occurs). |
Events
Ny kilasin'ny firodanan'ny Bootstrap dia mampiharihary hetsika vitsivitsy ho an'ny fampifandraisana amin'ny fampandehanana mirodana.
Karazana hetsika | Description |
---|---|
hide.bs.collapse |
Ity hetsika ity dia alefa avy hatrany rehefa hide nantsoina ny fomba. |
hidden.bs.collapse |
Ity hetsika ity dia voaroaka rehefa misy singa mianjera nafenina tamin'ny mpampiasa (hiandry ny fifindran'ny CSS ho vita). |
show.bs.collapse |
Mirehitra avy hatrany ity hetsika ity rehefa show antsoina ny fomba fiasa. |
shown.bs.collapse |
Ity hetsika ity dia alefa rehefa misy singa mirodana hita ho hitan'ny mpampiasa (hiandry ny famitana ny fifindrana CSS). |
const myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', event => {
// do something...
})