Sutraukti
Perjunkite projekto turinio matomumą naudodami kelias klases ir „JavaScript“ papildinius.
Kaip tai veikia
Sutraukti JavaScript įskiepis naudojamas turiniui rodyti ir slėpti. Mygtukai arba inkarai naudojami kaip aktyvikliai, susieti su konkrečiais jūsų perjungiamais elementais. Sutraukus elementą, height
jo dabartinė vertė bus animuota į 0
. Atsižvelgiant į tai, kaip CSS apdoroja animacijas, negalite naudoti padding
elemento .collapse
. Vietoj to naudokite klasę kaip nepriklausomą vyniojimo elementą.
prefers-reduced-motion
medijos užklausos. Žr
. mūsų pritaikymo neįgaliesiems dokumentacijos skyrių „Sumažintas judėjimas“ .
Pavyzdys
Spustelėkite toliau pateiktus mygtukus, kad peržiūrint klasę būtų rodomas ir paslėptas kitas elementas:
.collapse
slepia turinį.collapsing
taikomas perėjimų metu.collapse.show
rodo turinį
Paprastai rekomenduojame naudoti mygtuką su data-target
atributu. Nors semantiniu požiūriu nerekomenduojama, taip pat galite naudoti nuorodą su href
atributu (ir role="button"
). Abiem atvejais data-toggle="collapse"
būtina.
<p>
<a class="btn btn-primary" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
Link with href
</a>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
Button with data-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>
Horizontaliai
Sutraukimo įskiepis taip pat palaiko horizontalų sutraukimą. Įtraukite .width
modifikatoriaus klasę, kad pakeistumėte ją width
, height
ir nustatykite width
tiesioginį antrinį elementą. Nedvejodami rašykite savo pasirinktinį Sass, naudokite eilutinius stilius arba naudokite mūsų pločio įrankius .
min-height
nustatytas rinkinys, kad būtų išvengta pernelyg didelio perdažymo mūsų dokumentuose, tai nėra aiškiai reikalinga.
Būtinas tik width
ant antrinis elementas.
<p>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
Toggle width collapse
</button>
</p>
<div style="min-height: 120px;">
<div class="collapse width" id="collapseWidthExample">
<div class="card card-body" style="width: 320px;">
This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
</div>
</div>
</div>
Keli taikiniai
A <button>
arba <a>
gali rodyti ir slėpti kelis elementus, nurodydami juos naudodami JQuery parinkiklį savo href
ar data-target
atribute. Keli <button>
arba <a>
gali rodyti ir slėpti elementą, jei kiekvienas nurodo jį savo href
arba data-target
atributu
<p>
<a class="btn btn-primary" data-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-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>
Akordeono pavyzdys
Naudodami kortelės komponentą galite išplėsti numatytąjį sutraukimo veiksmą, kad sukurtumėte akordeoną. Norėdami tinkamai pasiekti akordeono stilių, būtinai naudokite .accordion
kaip įvyniojimą.
.show
Klasės
dėka šis skydelis rodomas pagal numatytuosius nustatymus
.<div class="accordion" id="accordionExample">
<div class="card">
<div class="card-header" id="headingOne">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Collapsible Group Item #1
</button>
</h2>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
<div class="card-body">
Some placeholder content for the first accordion panel. This panel is shown by default, thanks to the <code>.show</code> class.
</div>
</div>
</div>
<div class="card">
<div class="card-header" id="headingTwo">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Collapsible Group Item #2
</button>
</h2>
</div>
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
<div class="card-body">
Some placeholder content for the second accordion panel. This panel is hidden by default.
</div>
</div>
</div>
<div class="card">
<div class="card-header" id="headingThree">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
Collapsible Group Item #3
</button>
</h2>
</div>
<div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
<div class="card-body">
And lastly, the placeholder content for the third and final accordion panel. This panel is hidden by default.
</div>
</div>
</div>
</div>
Prieinamumas
Būtinai pridėkite aria-expanded
prie valdymo elemento. Šis atributas aiškiai perteikia esamą sutraukiamo elemento, susieto su valdikliu, būseną ekrano skaitytuvams ir panašioms pagalbinėms technologijoms. Jei sutraukiamas elementas uždarytas pagal numatytuosius nustatymus, valdymo elemento atributo vertė turi būti aria-expanded="false"
. Jei naudodami show
klasę nustatėte, kad sutraukiamasis elementas būtų atidarytas pagal numatytuosius nustatymus, aria-expanded="true"
vietoj jo nustatykite valdiklį. Papildinys automatiškai perjungs šį valdiklio atributą, atsižvelgdamas į tai, ar sutraukiamas elementas buvo atidarytas ar uždarytas (naudojant „JavaScript“ arba todėl, kad vartotojas suaktyvino kitą valdymo elementą, taip pat susietą su tuo pačiu sutraukiamu elementu). Jei valdymo elemento HTML elementas nėra mygtukas (pvz., <a>
arba <div>
), atributasrole="button"
reikia pridėti prie elemento.
Jei jūsų valdymo elementas taikomas vienam sutraukiamam elementui – ty data-target
atributas nurodo id
parinkiklį – turėtumėte pridėti aria-controls
atributą prie valdymo elemento, kuriame yra id
sutraukiamas elementas. Šiuolaikiniai ekrano skaitytuvai ir panašios pagalbinės technologijos naudoja šį atributą, kad suteiktų vartotojams papildomų sparčiųjų klavišų, leidžiančių tiesiogiai pereiti prie paties sutraukiamo elemento.
Atminkite, kad dabartinis „Bootstrap“ diegimas neapima įvairių klaviatūros sąveikų, aprašytų „ ARIA Authoring Practices Guide“ akordeono šablone – jas turėsite įtraukti patys naudodami tinkintą „JavaScript“.
Naudojimas
Sutraukimo papildinys naudoja keletą klasių, kad galėtų susidoroti su sunkiu kėlimu:
.collapse
slepia turinį.collapse.show
rodo turinį.collapsing
pridedamas, kai prasideda perėjimas, ir pašalinamas, kai jis baigiasi
Šias klases galima rasti _transitions.scss
.
Per duomenų atributus
Tiesiog pridėkite data-toggle="collapse"
ir a data-target
prie elemento, kad automatiškai priskirtumėte vieno ar daugiau sutraukiamų elementų valdymą. data-target
Atributas priima CSS parinkiklį, kuriam taikomas sutraukimas . Būtinai pridėkite klasę collapse
prie sutraukiamo elemento. Jei norite, kad jis būtų atidarytas pagal numatytuosius nustatymus, pridėkite papildomą klasę show
.
Norėdami įtraukti į akordeoną panašų grupės valdymą sutraukiamoje srityje, pridėkite duomenų atributą data-parent="#selector"
. Norėdami pamatyti, kaip tai veikia, žr. demonstracinę versiją.
Per JavaScript
Įgalinti rankiniu būdu su:
$('.collapse').collapse()
Galimybės
Parinktys gali būti perduodamos naudojant duomenų atributus arba JavaScript. Duomenų atributams pridėkite parinkties pavadinimą prie data-
, kaip ir data-parent=""
.
vardas | Tipas | Numatytas | apibūdinimas |
---|---|---|---|
tėvas | parinkiklis | jQuery objektas | DOM elementas | klaidinga | Jei pateikiamas pirminis elementas, visi sutraukiami elementai po nurodyto pirminio elemento bus uždaryti, kai bus parodytas šis sutraukiamas elementas. (panašus į tradicinį akordeono elgesį – tai priklauso nuo card klasės). Atributas turi būti nustatytas tikslinėje sutraukiamoje srityje. |
perjungti | loginis | tiesa | Perjungia sutraukiamą elementą iškvietimo metu |
Metodai
Asinchroniniai metodai ir perėjimai
Visi API metodai yra asinchroniniai ir pradeda perėjimą . Jie grįžta pas skambinantįjį, kai tik prasideda perėjimas, bet jam nepasibaigus . Be to, pereinamojo komponento metodo iškvietimas bus ignoruojamas .
Daugiau informacijos rasite mūsų JavaScript dokumentacijoje .
.collapse(options)
Suaktyvina turinį kaip sulankstomą elementą. Priima pasirenkamas parinktis object
.
$('#myCollapsible').collapse({
toggle: false
})
.collapse('toggle')
Perjungia sutraukiamą elementą į rodomą arba paslėptą. Grįžta į skambinantįjį, kol sutraukiamas elementas iš tikrųjų nebuvo parodytas arba paslėptas (ty prieš įvykstant shown.bs.collapse
arba hidden.bs.collapse
įvykiui).
.collapse('show')
Rodo sulankstomą elementą. Grįžta į skambinantįjį, kol iš tikrųjų nebuvo parodytas sutraukiamas elementas (ty prieš shown.bs.collapse
įvykį).
.collapse('hide')
Paslepia sulankstomą elementą. Grįžta į skambinantįjį, kol sutraukiamas elementas iš tikrųjų buvo paslėptas (ty prieš hidden.bs.collapse
įvykį).
.collapse('dispose')
Sunaikina elemento žlugimą.
Renginiai
„Bootstrap“ sutraukimo klasė atskleidžia keletą įvykių, kad būtų galima prisijungti prie sutraukimo funkcijos.
Renginio tipas | apibūdinimas |
---|---|
parodyti.bs.griūti | Šis įvykis suaktyvinamas iš karto, kai show iškviečiamas egzemplioriaus metodas. |
parodyta.bs.griūtis | Šis įvykis suaktyvinamas, kai sutraukimo elementas tampa matomas vartotojui (lauks, kol bus baigti CSS perėjimai). |
paslėpti.bs.griūti | Šis įvykis suaktyvinamas iš karto, kai hide iškviečiamas metodas. |
paslėptas.bs.griūti | Šis įvykis suaktyvinamas, kai sutraukimo elementas buvo paslėptas nuo vartotojo (lauks, kol bus baigti CSS perėjimai). |
$('#myCollapsible').on('hidden.bs.collapse', function () {
// do something...
})