Колапс
Укључите видљивост садржаја у свом пројекту помоћу неколико класа и наших ЈаваСцрипт до��атака.
Како то ради
ЈаваСцрипт додатак за колапс се користи за приказивање и сакривање садржаја. Дугмад или сидра се користе као окидачи који су мапирани на одређене елементе које пребацујете. Сажимањем елемента ће се анимирати 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
елемент склопивог. Савремени читачи екрана и сличне помоћне технологије користе овај атрибут како би корисницима пружиле додатне пречице за навигацију директно до самог склопивог елемента.
Имајте на уму да тренутна имплементација Боотстрапа не покрива различите опционе интеракције са тастатуром описане у АРИА-овом водичу за ауторске праксе за хармонику – мораћете да их сами укључите у прилагођени ЈаваСцрипт.
Сасс
Променљиве
$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"
. За више информација погледајте страницу о хармоници .
Преко ЈаваСцрипт-а
Омогућите ручно помоћу:
const collapseElementList = document.querySelectorAll('.collapse')
const collapseList = [...collapseElementList].map(collapseEl => new bootstrap.Collapse(collapseEl))
Опције
Пошто опције могу да се прослеђују преко атрибута података или ЈаваСцрипт-а, можете додати име опције у data-bs-
, као у data-bs-animation="{value}"
. Обавезно промените тип случаја назива опције из „ цамелЦасе ” у „ кебаб-цасе ” када преносите опције преко атрибута података. На пример, користите data-bs-custom-class="beautifier"
уместо data-bs-customClass="beautifier"
.
Од Боотстрап 5.2.0, све компоненте подржавају експериментални резервисани атрибут података data-bs-config
који може да садржи једноставну конфигурацију компоненте као ЈСОН стринг. Када елемент има атрибуте data-bs-config='{"delay":0, "title":123}'
и data-bs-title="456"
, коначна title
вредност ће бити 456
и одвојени атрибути података ће заменити вредности дате на data-bs-config
. Поред тога, постојећи атрибути података могу да садрже ЈСОН вредности попут data-bs-delay='{"show":0,"hide":150}'
.
Име | Тип | Уобичајено | Опис |
---|---|---|---|
parent |
селектор, ДОМ елемент | null |
Ако је наведен родитељ, онда ће сви склопиви елементи испод наведеног надређеног бити затворени када се прикаже ова склопива ставка. (слично традиционалном понашању хармонике - ово зависи од card класе). Атрибут мора бити постављен на циљну склопиву област. |
toggle |
боолеан | true |
Укључује склопиви елемент при позивању. |
Методе
Асинхроне методе и прелази
Све АПИ методе су асинхроне и покрећу транзицију . Они се враћају позиваоцу чим се транзиција започне, али пре него што се заврши . Поред тога, позив методе за прелазну компоненту биће занемарен .
Погледајте нашу ЈаваСцрипт документацију за више информација .
Активира ваш садржај као склопиви елемент. Прихвата опционе опције object
.
Можете креирати инстанцу колапса помоћу конструктора, на пример:
const bsCollapse = new bootstrap.Collapse('#myCollapse', {
toggle: false
})
Метод | Опис |
---|---|
dispose |
Уништава колапс елемента. (Уклања сачуване податке на ДОМ елементу) |
getInstance |
Статичка метода која вам омогућава да добијете инстанцу колапса повезана са ДОМ елементом, можете је користити овако: bootstrap.Collapse.getInstance(element) . |
getOrCreateInstance |
Статичка метода која враћа инстанцу колапса повезана са ДОМ елементом или креира нову у случају да није иницијализована. Можете га користити овако: bootstrap.Collapse.getOrCreateInstance(element) . |
hide |
Сакрива склопиви елемент. Враћа позиваоцу пре него што је склопиви елемент заиста сакривен (нпр. пре него што се hidden.bs.collapse догађај деси). |
show |
Приказује склопиви елемент. Враћа позиваоцу пре него што је склопиви елемент заправо приказан (нпр. пре него што се shown.bs.collapse догађај деси). |
toggle |
Пребацује склопиви елемент на приказан или скривен. Враћа позиваоцу пре него што је склопиви елемент заправо приказан или сакривен (тј. пре него што се деси догађај shown.bs.collapse или ).hidden.bs.collapse |
Догађаји
Боотстрап-ова класа колапса излаже неколико догађаја за спајање на функционалност колапса.
Тип догађаја | Опис |
---|---|
hide.bs.collapse |
Овај догађај се покреће одмах када се hide метода позове. |
hidden.bs.collapse |
Овај догађај се покреће када је елемент сажимања сакривен од корисника (сачекаће да се ЦСС транзиције доврше). |
show.bs.collapse |
Овај догађај се покреће одмах када show се позове метод инстанце. |
shown.bs.collapse |
Овај догађај се покреће када се кориснику учини видљивим елемент сажимања (сачекаће да се ЦСС транзиције доврше). |
const myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', event => {
// do something...
})