Kolaps
Uključite vidljivost sadržaja u cijelom projektu pomoću nekoliko klasa i naših JavaScript dodataka.
Kako radi
JavaScript dodatak za sažimanje koristi se za prikazivanje i sakrivanje sadržaja. Dugmad ili sidra se koriste kao okidači koji su mapirani na određene elemente koje prebacujete. Sažimanje elementa će animirati height
iz njegove trenutne vrijednosti u 0
. S obzirom na to kako CSS rukuje animacijama, ne možete koristiti padding
na .collapse
elementu. Umjesto toga, koristite klasu kao nezavisni element omota.
prefers-reduced-motion
medijskom upitu. Pogledajte odjeljak o
smanjenom pokretu u našoj dokumentaciji o pristupačnosti .
Primjer
Kliknite na dugmad ispod da prikažete i sakrijete drugi element putem promjena klase:
.collapse
sakriva sadržaj.collapsing
primjenjuje se tokom prijelaza.collapse.show
prikazuje sadržaj
Općenito, preporučujemo korištenje gumba s data-bs-target
atributom. Iako se ne preporučuje sa semantičke tačke gledišta, takođe možete koristiti vezu sa href
atributom (i role="button"
). U oba slučaja data-bs-toggle="collapse"
je potrebno.
<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>
Horizontalno
Dodatak za kolaps također podržava horizontalno sažimanje. Dodajte .collapse-horizontal
klasu modifikatora da biste prešli width
umjesto height
i postavite a width
na neposredno podređeni element. Slobodno napišite vlastiti prilagođeni Sass, koristite inline stilove ili koristite naše uslužne programe širine .
min-height
skup za izbjegavanje prekomjernog preslikavanja u našim dokumentima, to nije izričito potrebno.
Potreban je samo width
on podređeni element.
<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>
Više meta
A <button>
ili <a>
može prikazati i sakriti više elemenata upućivanjem na njih pomoću selektora u svom href
ili data-bs-target
atributu. Višestruki <button>
ili <a>
mogu prikazati i sakriti element ako svaki od njih referencira sa svojim href
ili data-bs-target
atributom
<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>
Pristupačnost
Obavezno dodajte aria-expanded
kontrolni element. Ovaj atribut eksplicitno prenosi trenutno stanje sklopivog elementa povezanog s kontrolom na čitače ekrana i slične pomoćne tehnologije. Ako je sklopivi element zatvoren prema zadanim postavkama, atribut na kontrolnom elementu trebao bi imati vrijednost aria-expanded="false"
. Ako ste postavili da sklopivi element bude otvoren prema zadanim postavkama pomoću show
klase, aria-expanded="true"
umjesto toga postavite na kontroli. Dodatak će automatski uključiti ovaj atribut na kontroli na osnovu toga da li je sklopivi element otvoren ili zatvoren (putem JavaScripta, ili zato što je korisnik pokrenuo drugi kontrolni element koji je također vezan za isti sklopivi element). Ako HTML element kontrolnog elementa nije dugme (npr. <a>
ili <div>
), atributrole="button"
treba dodati elementu.
Ako vaš kontrolni element cilja na jedan sklopivi element – tj. data-bs-target
atribut pokazuje na id
selektor – trebali biste dodati aria-controls
atribut kontrolnom elementu, koji sadrži id
sklopivi element. Moderni čitači ekrana i slične pomoćne tehnologije koriste ovaj atribut kako bi korisnicima pružile dodatne prečice za navigaciju direktno do samog sklopivog elementa.
Imajte na umu da Bootstrap-ova trenutna implementacija ne pokriva različite opcione interakcije sa tastaturom opisane u WAI-ARIA Authoring Practices 1.1 obrascu harmonike - moraćete da ih sami uključite u prilagođeni JavaScript.
Sass
Varijable
$transition-collapse: height .35s ease;
$transition-collapse-width: width .35s ease;
Casovi
Klase prijelaza za kolaps se mogu naći u scss/_transitions.scss
jer se dijele na više komponenti (kolaps i harmonika).
.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);
}
}
Upotreba
Dodatak za kolaps koristi nekoliko klasa za rukovanje teškim podizanjem:
.collapse
sakriva sadržaj.collapse.show
prikazuje sadržaj.collapsing
se dodaje kada prijelaz počne, a uklanja se kada se završi
Ovi časovi se mogu naći u _transitions.scss
.
Preko atributa podataka
Samo dodajte data-bs-toggle="collapse"
i a data-bs-target
elementu da automatski dodijelite kontrolu nad jednim ili više sklopivih elemenata. Atribut data-bs-target
prihvaća CSS selektor za primjenu kolapsa na. Obavezno dodajte klasu collapse
sklopivom elementu. Ako želite da se zadano otvori, dodajte dodatnu klasu show
.
Da biste dodali upravljanje grupama nalik harmonici u sklopivu oblast, dodajte atribut podataka data-bs-parent="#selector"
. Za više informacija pogledajte stranicu o harmonici .
Preko JavaScripta
Omogućite ručno pomoću:
var collapseElementList = [].slice.call(document.querySelectorAll('.collapse'))
var collapseList = collapseElementList.map(function (collapseEl) {
return new bootstrap.Collapse(collapseEl)
})
Opcije
Opcije se mogu proslijediti putem atributa podataka ili JavaScript-a. Za atribute podataka dodajte naziv opcije u data-bs-
, kao u data-bs-parent=""
.
Ime | Tip | Default | Opis |
---|---|---|---|
parent |
selektor | jQuery objekat | DOM element | false |
Ako je naveden roditelj, tada će svi sklopivi elementi ispod navedenog nadređenog biti zatvoreni kada se prikaže ova sklopiva stavka. (slično tradicionalnom ponašanju harmonike - ovo zavisi od card klase). Atribut se mora postaviti na ciljno sklopivo područje. |
toggle |
boolean | true |
Uključuje sklopivi element pri pozivanju |
Metode
Asinhrone metode i prijelazi
Sve API metode su asinhrone i pokreću tranziciju . Oni se vraćaju pozivaocu čim prijelaz započne, ali prije nego što se završi . Osim toga, poziv metode na prelaznu komponentu će biti zanemaren .
Pogledajte našu JavaScript dokumentaciju za više informacija .
Aktivira vaš sadržaj kao sklopivi element. Prihvata opcione opcije object
.
Možete kreirati instancu kolapsa pomoću konstruktora, na primjer:
var myCollapse = document.getElementById('myCollapse')
var bsCollapse = new bootstrap.Collapse(myCollapse, {
toggle: false
})
Metoda | Opis |
---|---|
toggle |
Prebacuje sklopivi element na prikazan ili skriven. Vraća pozivaocu prije nego što je sklopivi element zapravo prikazan ili sakriven (tj. prije nego se dogodi događaj shown.bs.collapse ili ).hidden.bs.collapse |
show |
Prikazuje sklopivi element. Vraća pozivaocu prije nego što je sklopivi element zapravo prikazan (npr. prije nego što se shown.bs.collapse događaj dogodi). |
hide |
Sakriva sklopivi element. Vraća pozivaocu prije nego što je sklopivi element stvarno sakriven (npr. prije nego što se hidden.bs.collapse dogodi događaj). |
dispose |
Uništava kolaps elementa. (Uklanja pohranjene podatke na DOM elementu) |
getInstance |
Statička metoda koja vam omogućava da dobijete instancu kolapsa pridruženu DOM elementu, možete je koristiti ovako:bootstrap.Collapse.getInstance(element) |
getOrCreateInstance |
Statička metoda koja vraća instancu kolapsa pridruženu DOM elementu ili kreira novu u slučaju da nije inicijalizirana. Možete ga koristiti ovako:bootstrap.Collapse.getOrCreateInstance(element) |
Događaji
Bootstrapova klasa kolapsa izlaže nekoliko događaja za spajanje na funkcionalnost kolapsa.
Vrsta događaja | Opis |
---|---|
show.bs.collapse |
Ovaj događaj se aktivira odmah kada show se pozove metoda instance. |
shown.bs.collapse |
Ovaj događaj se pokreće kada se element sažimanja učini vidljivim korisniku (će pričekati da se CSS prijelazi dovrše). |
hide.bs.collapse |
Ovaj događaj se pokreće odmah kada je hide metoda pozvana. |
hidden.bs.collapse |
Ovaj događaj se pokreće kada je element sažimanja skriven od korisnika (će čekati da se CSS prijelazi dovrše). |
var myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', function () {
// do something...
})