Колапс
Укључите видљивост садржаја у свом пројекту помоћу неколико класа и наших ЈаваСцрипт додатака.
Како то ради
ЈаваСцрипт додатак за колапс се користи за приказивање и сакривање садржаја. Дугмад или сидра се користе као окидачи који су мапирани на одређене елементе које пребацујете. Сажимањем елемента ће се анимирати height
са његове тренутне вредности на 0
. С обзиром на то како ЦСС рукује анимацијама, не можете користити padding
на .collapse
елементу. Уместо тога, користите класу као независни елемент омотача.
prefers-reduced-motion
медијског упита. Погледајте одељак о
смањеном покрету наше документације о приступачности .
Пример
Кликните на дугмад испод да бисте приказали и сакрили други елемент путем промена класе:
.collapse
скрива садржај.collapsing
примењује се током прелаза.collapse.show
приказује садржај
Генерално, препоручујемо коришћење дугмета са data-bs-target
атрибутом. Иако се са семантичке тачке гледишта не препоручује, такође можете користити везу са href
атрибутом (и role="button"
). У оба случаја data-bs-toggle="collapse"
је потребно.
<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>
Хоризонтално
Додатак за колапс такође подржава хоризонтално сажимање. Додајте .collapse-horizontal
класу модификатора да бисте пребацили width
уместо height
и поставите а width
на непосредно подређени елемент. Слободно напишите сопствени прилагођени Сасс, користите уграђене стилове или користите наше услужне програме за ширину .
min-height
скуп за избегавање прекомерног пресликавања у нашим документима, то није изричито потребно.
Потребан је само width
подређени елемент.
<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>
Више мета
А <button>
или <a>
може да прикаже и сакрије више елемената упућивањем на њих помоћу селектора у свом href
или data-bs-target
атрибуту. Вишеструки <button>
или <a>
могу да прикажу и сакрију елемент ако сваки од њих референцира са својим href
или data-bs-target
атрибутом
<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>
Приступачност
Обавезно додајте aria-expanded
контролни елемент. Овај атрибут експлицитно преноси тренутно стање склопивог елемента повезаног са контролом читачима екрана и сличним помоћним технологијама. Ако је склопиви елемент затворен по подразумеваној вредности, атрибут на контролном елементу треба да има вредност aria-expanded="false"
. Ако сте подесили да склопиви елемент буде подразумевано отворен помоћу show
класе, aria-expanded="true"
уместо тога поставите на контроли. Додатак ће аутоматски укључити овај атрибут на контроли на основу тога да ли је склопиви елемент отворен или затворен (преко ЈаваСцрипт-а, или зато што је корисник покренуо други контролни елемент који је такође везан за исти склопиви елемент). Ако ХТМЛ елемент контролног елемента није дугме (нпр. <a>
или <div>
), атрибутrole="button"
треба додати елементу.
Ако ваш контролни елемент циља на један склопиви елемент – тј. data-bs-target
атрибут показује на id
селектор – требало би да додате aria-controls
атрибут контролном елементу, који садржи id
елемент склопивог. Савремени читачи екрана и сличне помоћне технологије користе овај атрибут како би корисницима пружиле додатне пречице за навигацију директно до самог склопивог елемента.
Имајте на уму да Боотстрап-ова тренутна имплементација не покрива различите опционе интеракције са тастатуром описане у ВАИ-АРИА Аутхоринг Працтицес 1.1 обрасцу хармонике – мораћете да их сами укључите помоћу прилагођеног ЈаваСцрипт-а.
Сасс
Променљиве
$transition-collapse: height .35s ease;
$transition-collapse-width: width .35s ease;
класе
Прелазне класе колапса се могу наћи у scss/_transitions.scss
јер се деле у више компоненти (колапс и хармоника).
.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);
}
}
Употреба
Додатак за колапс користи неколико класа да би се носио са тешким подизањем:
.collapse
сакрива садржај.collapse.show
приказује садржај.collapsing
се додаје када транзиција почне, а уклања се када се заврши
Ове класе се могу наћи у _transitions.scss
.
Преко атрибута података
Само додајте data-bs-toggle="collapse"
и а data-bs-target
елементу да бисте аутоматски доделили контролу над једним или више склопивих елемената. Атрибут data-bs-target
прихвата ЦСС селектор за примену скупљања. Обавезно додајте класу collapse
у склопиви елемент. Ако желите да се подразумевано отвори, додајте додатну класу show
.
Да бисте додали управљање групама налик хармоници у склопиву област, додајте атрибут података data-bs-parent="#selector"
. За више информација погледајте страницу о хармоници .
Преко ЈаваСцрипт-а
Омогућите ручно помоћу:
var collapseElementList = [].slice.call(document.querySelectorAll('.collapse'))
var collapseList = collapseElementList.map(function (collapseEl) {
return new bootstrap.Collapse(collapseEl)
})
Опције
Опције се могу пренети преко атрибута података или ЈаваСцрипт-а. За атрибуте података додајте име опције у data-bs-
, као у data-bs-parent=""
.
Име | Тип | Уобичајено | Опис |
---|---|---|---|
parent |
селектор | јКуери објекат | ДОМ елемент | false |
Ако је наведен родитељ, онда ће сви склопиви елементи испод наведеног надређеног бити затворени када се прикаже ова склопива ставка. (слично традиционалном понашању хармонике - ово зависи од card класе). Атрибут мора бити постављен на циљну склопиву област. |
toggle |
боолеан | true |
Укључује склопиви елемент при позивању |
Методе
Асинхроне методе и прелази
Све АПИ методе су асинхроне и покрећу транзицију . Они се враћају позиваоцу чим се транзиција започне, али пре него што се заврши . Поред тога, позив методе за прелазну компоненту биће занемарен .
Погледајте нашу ЈаваСцрипт документацију за више информација .
Активира ваш садржај као склопиви елемент. Прихвата опционе опције object
.
Можете креирати инстанцу колапса помоћу конструктора, на пример:
var myCollapse = document.getElementById('myCollapse')
var bsCollapse = new bootstrap.Collapse(myCollapse, {
toggle: false
})
Метод | Опис |
---|---|
toggle |
Пребацује склопиви елемент на приказан или скривен. Враћа позиваоцу пре него што је склопиви елемент заправо приказан или сакривен (тј. пре него што се деси догађај shown.bs.collapse или ).hidden.bs.collapse |
show |
Приказује склопиви елемент. Враћа позиваоцу пре него што је склопиви елемент заправо приказан (нпр. пре него што се shown.bs.collapse догађај деси). |
hide |
Сакрива склопиви елемент. Враћа позиваоцу пре него што је склопиви елемент заиста сакривен (нпр. пре него што се hidden.bs.collapse догађај деси). |
dispose |
Уништава колапс елемента. (Уклања сачуване податке на ДОМ елементу) |
getInstance |
Статичка метода која вам омогућава да добијете инстанцу колапса повезана са ДОМ елементом, можете је користити овако:bootstrap.Collapse.getInstance(element) |
getOrCreateInstance |
Статичка метода која враћа инстанцу колапса повезана са ДОМ елементом или креира нову у случају да није иницијализована. Можете га користити овако:bootstrap.Collapse.getOrCreateInstance(element) |
Догађаји
Боотстрап-ова класа колапса излаже неколико догађаја за спајање на функционалност колапса.
Тип догађаја | Опис |
---|---|
show.bs.collapse |
Овај догађај се покреће одмах када show се позове метод инстанце. |
shown.bs.collapse |
Овај догађај се покреће када се кориснику учини видљивим елемент сажимања (сачекаће да се ЦСС транзиције доврше). |
hide.bs.collapse |
Овај догађај се покреће одмах када се hide метода позове. |
hidden.bs.collapse |
Овај догађај се покреће када је елемент сажимања сакривен од корисника (сачекаће да се ЦСС транзиције доврше). |
var myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', function () {
// do something...
})