Kolaps
Uključite/isključite vidljivost sadržaja u svom projektu pomoću nekoliko klasa i naših JavaScript dodataka.
Kako radi
Sažeti JavaScript dodatak koristi se za prikazivanje i sakrivanje sadržaja. Gumbi ili sidra koriste se kao okidači koji se preslikavaju na određene elemente koje mijenjate. Sažimanje elementa će animirati height
iz njegove trenutne vrijednosti u 0
. S obzirom na to kako CSS obrađuje animacije, ne možete koristiti padding
na .collapse
elementu. Umjesto toga, koristite klasu kao neovisni element za omatanje.
prefers-reduced-motion
medijskom upitu. Pogledajte odjeljak
smanjenog kretanja u našoj dokumentaciji o pristupačnosti .
Primjer
Pritisnite donje gumbe za prikaz ili skrivanje drugog elementa putem promjena klase:
.collapse
skriva sadržaj.collapsing
primjenjuje se tijekom 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 točke gledišta, također možete koristiti vezu s href
atributom (i role="button"
). U oba slučaja data-bs-toggle="collapse"
potrebno je.
<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>
Više ciljeva
A <button>
ili <a>
može prikazati i sakriti više elemenata upućivanjem na njih selektorom u svom href
ili data-bs-target
atributu. Višestruki <button>
ili <a>
mogu prikazati i sakriti element ako svaki od njih upućuje na njega 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
u kontrolni element. Ovaj atribut eksplicitno prenosi trenutačno stanje sklopivog elementa povezanog s kontrolom čitačima zaslona i sličnim pomoćnim tehnologijama. Ako je sklopivi element zatvoren prema zadanim postavkama, atribut na kontrolnom elementu trebao bi imati vrijednost aria-expanded="false"
. Ako ste sklopivi element postavili da bude otvoren prema zadanim postavkama pomoću show
klase, aria-expanded="true"
umjesto toga postavite na kontrolu. Dodatak će automatski prebaciti ovaj atribut na kontrolu na temelju toga je li sklopivi element otvoren ili zatvoren (preko JavaScripta ili zato što je korisnik pokrenuo drugi kontrolni element također povezan s istim sklopivim elementom). Ako HTML element kontrolnog elementa nije gumb (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 u kontrolni element koji sadrži id
element sklopivog elementa. Moderni čitači zaslona i slične pomoćne tehnologije koriste ovaj atribut kako bi korisnicima pružili dodatne prečace za izravnu navigaciju do samog sklopivog elementa.
Imajte na umu da Bootstrapova trenutna implementacija ne pokriva razne izborne interakcije tipkovnice opisane u obrascu harmonike WAI-ARIA Authoring Practices 1.1 - morat ćete ih sami uključiti s prilagođenim JavaScriptom.
Sass
Varijable
$transition-collapse: height .35s ease;
Nastava
Klase prijelaza sažimanja mogu se pronaći u scss/_transitions.scss
budući da se dijele na više komponenti (sažimanje i harmonika).
.collapse {
&:not(.show) {
display: none;
}
}
.collapsing {
height: 0;
overflow: hidden;
@include transition($transition-collapse);
}
Korištenje
Dodatak za kolapsiranje koristi nekoliko klasa za rukovanje teškim dizanjem:
.collapse
skriva sadržaj.collapse.show
prikazuje sadržaj.collapsing
dodaje se kada prijelaz započne, a uklanja se kada završi
Ove se klase mogu pronaći u _transitions.scss
.
Preko atributa podataka
Samo dodajte data-bs-toggle="collapse"
i data-bs-target
elementu da biste automatski dodijelili kontrolu nad jednim ili više sklopivih elemenata. Atribut data-bs-target
prihvaća CSS selektor na koji se primjenjuje sažimanje. Obavezno dodajte klasu collapse
sklopivom elementu. Ako želite da se prema zadanim postavkama otvori, dodajte dodatnu klasu show
.
Za dodavanje grupnog upravljanja poput harmonike u sklopivi prostor dodajte atribut podataka data-bs-parent="#selector"
. Pogledajte demo kako biste vidjeli ovo na djelu.
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)
})
Mogućnosti
Opcije se mogu proslijediti putem atributa podataka ili JavaScripta. Za atribute podataka dodajte naziv opcije u data-bs-
, kao u data-bs-parent=""
.
Ime | Tip | Zadano | Opis |
---|---|---|---|
parent |
selektor | jQuery objekt | DOM element | false |
Ako je naveden nadređeni element, tada će svi sklopivi elementi pod navedenim nadređenim elementom biti zatvoreni kada se prikaže ova sklopiva stavka. (slično tradicionalnom ponašanju harmonike - ovo ovisi o card klasi). Atribut mora biti postavljen na ciljno sklopivo područje. |
toggle |
Booleov | true |
Prebacuje sklopivi element na poziv |
Metode
Asinkrone metode i prijelazi
Sve API metode su asinkrone i pokreću prijelaz . Vraćaju se pozivatelju čim prijelaz započne, ali prije nego što završi . Osim toga, poziv metode na prijelaznoj komponenti bit će zanemaren .
Pogledajte našu JavaScript dokumentaciju za više informacija .
Aktivira vaš sadržaj kao sklopivi element. Prihvaća izborne opcije object
.
Možete stvoriti 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 se pozivatelju prije nego što se sklopivi element stvarno prikaže ili sakrije (tj. prije nego što se dogodi događaj shown.bs.collapse ili ).hidden.bs.collapse |
show |
Prikazuje sklopivi element. Vraća se pozivatelju prije nego što je sklopivi element stvarno prikazan (npr. prije nego što se shown.bs.collapse događaj dogodi). |
hide |
Skriva sklopivi element. Vraća se pozivatelju prije nego što je sklopivi element zapravo skriven (npr. prije nego što se hidden.bs.collapse događaj dogodi). |
dispose |
Uništava kolaps elementa. (Uklanja pohranjene podatke na DOM elementu) |
getInstance |
Statička metoda koja vam omogućuje da dobijete instancu kolapsa povezanu s DOM elementom, možete je koristiti ovako:bootstrap.Collapse.getInstance(element) |
getOrCreateInstance |
Statička metoda koja vraća instancu kolapsa pridruženu DOM elementu ili stvara novu u slučaju da nije inicijalizirana. Možete ga koristiti ovako:bootstrap.Collapse.getOrCreateInstance(element) |
Događaji
Bootstrapova kolaps klasa izlaže nekoliko događaja za spajanje na kolaps funkcionalnost.
Vrsta događaja | Opis |
---|---|
show.bs.collapse |
Ovaj događaj aktivira se odmah kada show se pozove metoda instance. |
shown.bs.collapse |
Ovaj se događaj pokreće kada se element sažimanja učini vidljivim korisniku (pričekat će da se CSS prijelazi završe). |
hide.bs.collapse |
Ovaj događaj se pokreće odmah nakon hide poziva metode. |
hidden.bs.collapse |
Ovaj se događaj pokreće kada je element sažimanja skriven od korisnika (pričekat će da se CSS prijelazi završe). |
var myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', function () {
// do something...
})