Sakļaut
Pārslēdziet sava projekta satura redzamību, izmantojot dažas klases un mūsu JavaScript spraudņus.
Kā tas strādā
Sakļautais JavaScript spraudnis tiek izmantots, lai rādītu un paslēptu saturu. Pogas vai enkuri tiek izmantoti kā aktivizētāji, kas ir saistīti ar konkrētiem elementiem, kurus pārslēdzat. Sakļaujot elementu, height
tā pašreizējā vērtība tiks animēta uz 0
. Ņemot vērā to, kā CSS apstrādā animācijas, to nevar izmantot padding
elementam .collapse
. Tā vietā izmantojiet klasi kā neatkarīgu iesaiņojuma elementu.
prefers-reduced-motion
multivides vaicājuma. Skatiet
mūsu pieejamības dokumentācijas sadaļu samazinātas kustības .
Piemērs
Noklikšķiniet uz tālāk esošajām pogām, lai parādītu un paslēptu citu elementu, veicot klases izmaiņas:
.collapse
slēpj saturu.collapsing
tiek izmantots pāreju laikā.collapse.show
parāda saturu
Parasti mēs iesakām izmantot pogu ar data-bs-target
atribūtu. Lai gan no semantiskā viedokļa tas nav ieteicams, varat izmantot arī saiti ar href
atribūtu (un role="button"
). Abos gadījumos data-bs-toggle="collapse"
ir nepieciešams.
<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>
Horizontāli
Sakļaušanas spraudnis atbalsta arī horizontālo sabrukšanu. Pievienojiet .collapse-horizontal
modifikatora klasi, lai pārietu uz width
tā vietā, height
un iestatiet a width
tiešajam bērna elementam. Jūtieties brīvi rakstīt savu pielāgoto Sass, izmantojiet iekļautos stilus vai izmantojiet mūsu platuma utilītas .
min-height
noteikts, lai mūsu dokumentos izvairītos no pārmērīgas pārkrāsošanas, tas nav tieši pieprasīts.
Ir nepieciešams tikai width
elements on the child.
<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>
Vairāki mērķi
A <button>
vai <a>
var parādīt un paslēpt vairākus elementus, atsaucoties uz tiem ar atlasītāju savā href
vai data-bs-target
atribūtā. Vairāki <button>
vai <a>
var parādīt un paslēpt elementu, ja katrs uz to atsaucas ar savu href
vai data-bs-target
atribūtu
<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>
Pieejamība
Noteikti pievienojiet aria-expanded
vadības elementu. Šis atribūts skaidri norāda uz ekrāna lasītājiem un līdzīgām palīgtehnoloģijām ar vadīklu saistītā saliekamā elementa pašreizējo stāvokli. Ja saliekamais elements ir aizvērts pēc noklusējuma, vadības elementa atribūta vērtībai ir jābūt aria-expanded="false"
. show
Ja, izmantojot klasi, pēc noklusējuma esat iestatījis saliekamo elementu atvērtu, aria-expanded="true"
tā vietā iestatiet vadīklu. Spraudnis automātiski pārslēgs šo atribūtu vadīklā, pamatojoties uz to, vai sakļaujamais elements ir atvērts vai aizvērts (izmantojot JavaScript vai tāpēc, ka lietotājs aktivizēja citu vadības elementu, kas arī ir saistīts ar to pašu saliekamo elementu). Ja vadības elementa HTML elements nav poga (piemēram, <a>
vai <div>
), atribūtsrole="button"
jāpievieno elementam.
Ja jūsu vadības elements ir vērsts uz vienu saliekamo elementu, ti, data-bs-target
atribūts norāda uz id
atlasītāju, jums jāpievieno aria-controls
atribūts vadības elementam, kas satur id
saliekamā elementa elementu. Mūsdienu ekrāna lasītāji un līdzīgas palīgtehnoloģijas izmanto šo atribūtu, lai nodrošinātu lietotājiem papildu īsceļus, kas ļauj pāriet tieši uz saliekamo elementu.
Ņemiet vērā, ka Bootstrap pašreizējā ieviešana neaptver dažādas izvēles tastatūras mijiedarbības, kas aprakstītas ARIA autorēšanas prakses rokasgrāmatas akordeona shēmā — tās jums pašam būs jāiekļauj pielāgotajā JavaScript.
Sass
Mainīgie
$transition-collapse: height .35s ease;
$transition-collapse-width: width .35s ease;
Klases
Sakļaut pārejas klases var atrast, scss/_transitions.scss
jo tās ir kopīgas vairākiem komponentiem (sabrukums un akordeons).
.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);
}
}
Lietošana
Sakšanas spraudnis izmanto dažas klases, lai apstrādātu smagumu:
.collapse
slēpj saturu.collapse.show
parāda saturu.collapsing
tiek pievienots, kad sākas pāreja, un noņemts, kad tā beidzas
Šīs nodarbības var atrast _transitions.scss
.
Izmantojot datu atribūtus
Vienkārši pievienojiet elementam data-bs-toggle="collapse"
un a data-bs-target
, lai automātiski piešķirtu viena vai vairāku saliekamo elementu vadību. Atribūts data-bs-target
akceptē CSS atlasītāju, kam lietot sakļauto. Noteikti pievienojiet klasi collapse
saliekamajam elementam. Ja vēlaties, lai tas tiktu atvērts pēc noklusējuma, pievienojiet papildu klasi show
.
Lai saliekamam apgabalam pievienotu akordeonam līdzīgu grupu pārvaldību, pievienojiet datu atribūtu data-bs-parent="#selector"
. Plašāku informāciju skatiet akordeona lapā .
Izmantojot JavaScript
Iespējot manuāli, izmantojot:
const collapseElementList = document.querySelectorAll('.collapse')
const collapseList = [...collapseElementList].map(collapseEl => new bootstrap.Collapse(collapseEl))
Iespējas
Tā kā opcijas var nodot, izmantojot datu atribūtus vai JavaScript, varat pievienot opcijas nosaukumu data-bs-
, piemēram, data-bs-animation="{value}"
. Nododot opcijas, izmantojot datu atribūtus , noteikti nomainiet opcijas nosaukuma reģistra veidu no “ camelCase ” uz “ kebab-case ”. Piemēram, data-bs-custom-class="beautifier"
izmantojiet data-bs-customClass="beautifier"
.
Sākot ar versiju Bootstrap 5.2.0, visi komponenti atbalsta eksperimentālu rezervēto datu atribūtu data-bs-config
, kurā var ievietot vienkāršu komponentu konfigurāciju kā JSON virkni. Ja elementam ir atribūti data-bs-config='{"delay":0, "title":123}'
un data-bs-title="456"
, galīgā title
vērtība būs 456
un atsevišķie datu atribūti ignorēs vērtības, kas norādītas data-bs-config
. Turklāt esošie datu atribūti var ietvert JSON vērtības, piemēram, data-bs-delay='{"show":0,"hide":150}'
.
Vārds | Tips | Noklusējums | Apraksts |
---|---|---|---|
parent |
atlasītājs, DOM elements | null |
Ja ir norādīts vecāks, visi sakļaujamie elementi zem norādītā vecāka tiks aizvērti, kad tiek parādīts šis saliekamais vienums. (līdzīgi tradicionālajai akordeona uzvedībai - tas ir atkarīgs no card klases). Atribūts ir jāiestata mērķa saliekamajā apgabalā. |
toggle |
Būla | true |
Pārslēdz saliekamo elementu izsaukšanas laikā. |
Metodes
Asinhronās metodes un pārejas
Visas API metodes ir asinhronas un sāk pāreju . Viņi atgriežas pie zvanītāja, tiklīdz ir sākta pāreja, bet pirms tās beigām . Turklāt pārejas komponenta metodes izsaukums tiks ignorēts .
Aktivizē jūsu saturu kā saliekamu elementu. Pieņem izvēles opcijas object
.
Varat izveidot sakukšanas gadījumu, izmantojot konstruktoru, piemēram:
const bsCollapse = new bootstrap.Collapse('#myCollapse', {
toggle: false
})
Metode | Apraksts |
---|---|
dispose |
Iznīcina elementa sabrukumu. (Noņem DOM elementā saglabātos datus) |
getInstance |
Statiskā metode, kas ļauj iegūt ar DOM elementu saistīto sakukšanas gadījumu, varat to izmantot šādi: bootstrap.Collapse.getInstance(element) . |
getOrCreateInstance |
Statiskā metode, kas atgriež sakukšanas gadījumu, kas saistīts ar DOM elementu, vai izveido jaunu, ja tas nav inicializēts. Varat to izmantot šādi: bootstrap.Collapse.getOrCreateInstance(element) . |
hide |
Slēpj saliekamu elementu. Atgriežas pie zvanītāja, pirms saliekamais elements ir faktiski paslēpts (piemēram, pirms hidden.bs.collapse notikuma). |
show |
Parāda saliekamu elementu. Atgriežas pie zvanītāja, pirms saliekamais elements ir faktiski parādīts (piemēram, pirms shown.bs.collapse notikuma). |
toggle |
Pārslēdz saliekamo elementu uz parādīto vai paslēpto. Atgriežas pie zvanītāja, pirms saliekamais elements ir faktiski parādīts vai paslēpts (ti, pirms notiek notikums shown.bs.collapse vai ).hidden.bs.collapse |
Pasākumi
Bootstrap sabrukšanas klase atklāj dažus notikumus, lai piesaistītu sabrukšanas funkcionalitāti.
Pasākuma veids | Apraksts |
---|---|
hide.bs.collapse |
Šis notikums tiek aktivizēts nekavējoties, kad hide metode ir izsaukta. |
hidden.bs.collapse |
Šis notikums tiek aktivizēts, kad sakļautais elements ir paslēpts no lietotāja (tiks gaidīts, kamēr CSS pārejas tiks pabeigtas). |
show.bs.collapse |
Šis notikums tiek aktivizēts nekavējoties, kad show tiek izsaukta instances metode. |
shown.bs.collapse |
Šis notikums tiek aktivizēts, kad sakļautais elements ir padarīts redzams lietotājam (pagaidīs, kamēr CSS pārejas tiks pabeigtas). |
const myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', event => {
// do something...
})