Apseимерелү
Проект буенча эчтәлекнең күренүен берничә класс һәм безнең JavaScript плагиннары белән алыштырыгыз.
Ничек бу эшли
JavaScript плагины җимерелү эчтәлекне күрсәтү һәм яшерү өчен кулланыла. Кнопка яки анкор триггер буларак кулланыла, сез алыштырган конкрет элементларга күчерелгән. Элементны җимерү height
хәзерге кыйммәтеннән җанландырачак 0
. CSS анимацияләрне ничек эшләвен исәпкә алып, сез элементта куллана 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>
Горизонталь
Apseимерелү плагины горизонталь җимерелүне дә хуплый. Аның урынына .collapse-horizontal
күчү өчен модификатор классын өстәгез һәм балалар элементына урнаштырыгыз. Customзегезнең махсус Sass язарга, эчке стильләрне кулланырга, яисә безнең киңлек коммуналь хезмәтләрен кулланырга иренегез .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"
аның урынына контрольгә куй. Плагин бу атрибутны автоматик рәвештә контрольдә алыштырачак, җимерелә торган элемент ачылган яки ябылган (JavaScript аша, яисә кулланучы шул ук җимерелә торган элементка бәйләнгән бүтән контроль элементны этәргәнгә). Әгәр контроль элементның HTML элементы төймә булмаса (мәсәлән, ан <a>
яки <div>
), атрибутrole="button"
элементка кушылырга тиеш.
Әгәр сезнең контроль элемент бер җимерелә торган элементны максат итә икән - ягъни data-bs-target
атрибут id
селекторга күрсәтә - сез атылучы элементны үз aria-controls
эченә алган контроль элементына өстәргә тиеш id
. Заманча экран укучылары һәм охшаш ярдәмче технологияләр бу атрибутны кулланучыларга җимерелә торган элементның үзенә юнәлтү өчен өстәмә кыска юллар белән тәэмин итү өчен кулланалар.
Игътибар итегез, Bootstrap-ның хәзерге тормышка ашырылуы ARIA Авторлык Практикасы Белешмә Аккордеон үрнәгендә тасвирланган төрле факультатив клавиатура үзара бәйләнешне үз эченә алмый - сезгә аларны JavaScript белән кертергә кирәк булачак.
Сасс
Variзгәрешләр
$transition-collapse: height .35s ease;
$transition-collapse-width: width .35s ease;
Дәресләр
Collимерелү күчү классларын табарга мөмкин, 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);
}
}
Куллану
Apseимерелү плагины авыр күтәрү өчен берничә класс куллана:
.collapse
эчтәлекне яшерә.collapse.show
эчтәлеген күрсәтә.collapsing
күчү башлангач өстәлә, беткәч бетерелә
Бу классларны табып була _transitions.scss
.
Мәгълүмат атрибутлары аша
Бер яки берничә җимерелә торган элементларга контрольне автоматик рәвештә билгеләү data-bs-toggle="collapse"
өчен data-bs-target
элементка өстәгез. data-bs-target
Атрибут җимерелүне куллану өчен CSS селекторын кабул итә . Классны collapse
җимерелә торган элементка өстәргә онытмагыз. Килешү ачык булса, өстәмә класс өстәгез show
.
Accимерелә торган мәйданга аккордеонга охшаган төркем белән идарә итү өчен, мәгълүмат атрибутын өстәгез data-bs-parent="#selector"
. Күбрәк мәгълүмат алу өчен аккордеон битенә карагыз .
JavaScript аша
Кул белән эшләгез:
const collapseElementList = document.querySelectorAll('.collapse')
const collapseList = [...collapseElementList].map(collapseEl => new bootstrap.Collapse(collapseEl))
Вариантлар
Вариантлар мәгълүмат атрибутлары яки JavaScript аша уза алганлыктан, сез опция исемен куша data-bs-
аласыз data-bs-animation="{value}"
. Вариант исемен мәгълүмат атрибутлары аша үткәндә " camelCase " дан "kebab -case " га үзгәртегез. Мәсәлән, data-bs-custom-class="beautifier"
урынына кулланыгыз data-bs-customClass="beautifier"
.
Bootstrap 5.2.0 мәгълүматларына караганда, барлык компонентлар эксперименталь сакланган мәгълүмат атрибутын хуплый, data-bs-config
алар гади компонент конфигурациясен JSON сызыгы итеп урнаштыра ала. Элемент data-bs-config='{"delay":0, "title":123}'
һәм data-bs-title="456"
атрибутлар булганда, соңгы title
кыйммәт булачак 456
һәм аерым мәгълүмат атрибутлары бирелгән кыйммәтләрне юкка чыгарачак data-bs-config
. Моннан тыш, булган мәгълүмат атрибутлары JSON кебек кыйммәтләрне урнаштыра ала data-bs-delay='{"show":0,"hide":150}'
.
Исем | Тип | Килешү | Тасвирлау |
---|---|---|---|
parent |
селектор, DOM элементы | null |
Әгәр дә ата-ана тәэмин ителсә, күрсәтелгән ата-ана астында барлык җимерелә торган элементлар бу җимерелә торган әйбер күрсәтелгәндә ябылачак. (традицион аккордеон тәртибенә охшаган - бу card класска бәйле). Атрибут максатчан җимерелә торган мәйданда куелырга тиеш. |
toggle |
буле | true |
Чакырыла торган элементны алыштыра. |
Методлар
Асинхрон ысуллар һәм күчү
Барлык API ысуллары да асинхрон һәм күчү башлый . Күчерелеш башлангач, ләкин ул беткәнче шалтыратучыга кире кайталар . Моннан тыш, күчү компонентына методик чакыру игътибарсыз калачак .
Күбрәк мәгълүмат алу өчен безнең JavaScript документларын карагыз .
Эчтәлекне җимерелә торган элемент буларак активлаштыра. Өстәмә вариантларны кабул итә object
.
Сез конструктор белән җимерелү инстанциясен булдыра аласыз, мәсәлән:
const bsCollapse = new bootstrap.Collapse('#myCollapse', {
toggle: false
})
Метод | Тасвирлау |
---|---|
dispose |
Элементның җимерелүен юк итә. (DOM элементында сакланган мәгълүматны бетерә) |
getInstance |
DOM элементына бәйләнгән таркалу инстанциясен алырга мөмкинлек биргән статик ысул, сез аны болай куллана аласыз : bootstrap.Collapse.getInstance(element) . |
getOrCreateInstance |
DOM элементына бәйләнгән җимерелү инстанциясен кире кайтара торган статик ысул яки ул башланмаган очракта яңасын булдыра. Сез аны болай куллана аласыз : bootstrap.Collapse.getOrCreateInstance(element) . |
hide |
Apsимерелә торган элементны яшерә. Apsимерелә торган элемент яшерелгәнче шалтыратучыга кире кайта (мәсәлән, hidden.bs.collapse вакыйга булганчы). |
show |
Apsимерелә торган элементны күрсәтә. Apsимерелә торган элемент чынбарлыкта күрсәтелгәнче (мәсәлән, shown.bs.collapse вакыйга булганчы) шалтыратучыга кире кайта. |
toggle |
Collимерелә торган элементны күрсәтә яки яшерә. Apsимерелә торган элемент чынбарлыкта күрсәтелгән яки яшерелгәнче (ягъни вакыйга булганчы) шалтыратучыга кире кайта.shown.bs.collapse hidden.bs.collapse |
Вакыйгалар
Bootstrap-ның җимерелү классы җимерелү функциясенә кушылу өчен берничә вакыйганы фаш итә.
Вакыйга төре | Тасвирлау |
---|---|
hide.bs.collapse |
Бу вакыйга hide метод чакырылганнан соң ук җибәрелә. |
hidden.bs.collapse |
Бу вакыйга кулланучының таркалу элементы яшерелгәндә эшләнә (CSS күчү тәмамлануын көтәр). |
show.bs.collapse |
show Бу вакыйга инстанция ысулы чакырылганда шунда ук янып тора . |
shown.bs.collapse |
Бу вакыйга кулланучыга җимерелгән элемент күренгәндә эшләнә (CSS күчү тәмамлануын көтәр). |
const myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', event => {
// do something...
})