Колапс
Вклучете ја видливоста на содржината низ вашиот проект со неколку класи и нашите додатоци за 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...
})