Колапс
Вклучете ја видливоста на содржината низ вашиот проект со неколку класи и нашите додатоци за JavaScript.
Како работи
Приклучокот за колапс JavaScript се користи за прикажување и криење на содржината. Копчињата или сидрата се користат како активирања кои се мапирани на одредени елементи што ги менувате. Со собирање елемент ќе се анимира height
од неговата моментална вредност во 0
. Со оглед на тоа како CSS се справува со анимации, не можете да користите padding
на .collapse
елемент. Наместо тоа, користете ја класата како независен елемент за завиткување.
prefers-reduced-motion
медиумското барање. Погледнете го делот за
намалено движење од нашата документација за пристапност .
Пример
Кликнете на копчињата подолу за да прикажете и скриете друг елемент преку промени во класата:
.collapse
ја крие содржината.collapsing
се применува за време на транзициите.collapse.show
покажува содржина
Општо земено, препорачуваме да користите копче со data-bs-target
атрибутот. Иако не се препорачува од семантичка гледна точка, можете да користите и врска со href
атрибутот (и a 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
и да поставите a width
на елементот непосредно дете. Слободно можете да напишете свој сопствен Sass, да користите вградени стилови или да ги користите нашите алатки за ширина .
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"
наместо тоа, поставете ја контролата. Приклучокот автоматски ќе го префрли овој атрибут на контролата врз основа на тоа дали елементот што може да се склопува е отворен или затворен (преку JavaScript или затоа што корисникот активирал друг контролен елемент, исто така поврзан со истиот елемент што се склопува). Ако HTML елементот на контролниот елемент не е копче (на пр., an <a>
или <div>
), атрибутотrole="button"
треба да се додаде на елементот.
Ако вашиот контролен елемент цели на еден склоплив елемент - т.е. data-bs-target
атрибутот покажува на id
избирач - треба да го додадете aria-controls
атрибутот на контролниот елемент, кој го содржи елементот id
што се склопува. Современите читачи на екранот и сличните помошни технологии го користат овој атрибут за да им обезбедат на корисниците дополнителни кратенки за директно навигација до самиот елемент што се склопува.
Имајте предвид дека тековната имплементација на Bootstrap не ги покрива различните опционални интеракции на тастатурата опишани во шаблонот за хармоника на WAI-ARIA Authoring Practices 1.1 - ќе треба сами да ги вклучите со прилагоден JavaScript.
Сас
Променливи
$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"
и a data-bs-target
на елементот за автоматски да доделите контрола на еден или повеќе елементи што се склопуваат. Атрибутот data-bs-target
прифаќа CSS избирач за да се примени колапсот. Не заборавајте да ја додадете класата collapse
во склопувачкиот елемент. Ако сакате стандардно да се отвори, додадете ја дополнителната класа show
.
За да додадете управување со група како хармоника во склоплива област, додајте го атрибутот податоци data-bs-parent="#selector"
. Погледнете ја страницата за хармоника за повеќе информации.
Преку JavaScript
Овозможи рачно со:
var collapseElementList = [].slice.call(document.querySelectorAll('.collapse'))
var collapseList = collapseElementList.map(function (collapseEl) {
return new bootstrap.Collapse(collapseEl)
})
Опции
Опциите може да се пренесат преку атрибути на податоци или JavaScript. За атрибути на податоци, додајте го името на опцијата на data-bs-
, како во data-bs-parent=""
.
Име | Тип | Стандардно | Опис |
---|---|---|---|
parent |
селектор | jQuery објект | DOM елемент | false |
Ако е обезбеден родител, тогаш сите елементи што се склопуваат под наведениот родител ќе бидат затворени кога ќе се прикаже оваа ставка што може да се склопува. (слично на традиционалното однесување на хармоника - ова зависи од card класата). Атрибутот треба да се постави на целната склоплива област. |
toggle |
булови | true |
Го исклучува склопувачкиот елемент при повикувањето |
Методи
Асинхрони методи и транзиции
Сите API методи се асинхрони и започнуваат транзиција . Тие се враќаат кај повикувачот штом ќе започне транзицијата, но пред да заврши . Дополнително, повик на метод на компонента во транзиција ќе се игнорира .
Погледнете ја нашата JavaScript документација за повеќе информации .
Ја активира вашата содржина како склоплив елемент. Прифаќа изборни опции 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 |
Уништува колапс на елемент. (Ги отстранува зачуваните податоци на елементот DOM) |
getInstance |
Статички метод кој ви овозможува да го добиете примерот на колапс поврзан со елементот DOM, можете да го користите вака:bootstrap.Collapse.getInstance(element) |
getOrCreateInstance |
Статички метод кој враќа примерок на колапс поврзан со елемент DOM или создава нов во случај да не бил иницијализиран. Можете да го користите вака:bootstrap.Collapse.getOrCreateInstance(element) |
Настани
Класата за колапс на Bootstrap изложува неколку настани за приклучување во функционалноста за колапс.
Тип на настан | Опис |
---|---|
show.bs.collapse |
Овој настан се вклучува веднаш кога show ќе се повика методот на пример. |
shown.bs.collapse |
Овој настан се активира кога елементот за колапс е видлив за корисникот (ќе чека да се завршат транзициите на CSS). |
hide.bs.collapse |
Овој настан се активира веднаш кога hide методот е повикан. |
hidden.bs.collapse |
Овој настан се активира кога елементот за колапс е скриен од корисникот (ќе чека да се завршат транзициите на CSS). |
var myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', function () {
// do something...
})