in English

Колапс

Укључите видљивост садржаја у свом пројекту помоћу неколико класа и наших ЈаваСцрипт додатака.

Како то ради

ЈаваСцрипт додатак за колапс се користи за приказивање и сакривање садржаја. Дугмад или сидра се користе као окидачи који су мапирани на одређене елементе које пребацујете. Сажимањем елемента ће се анимирати heightса његове тренутне вредности на 0. С обзиром на то како ЦСС рукује анимацијама, не можете користити paddingна .collapseелементу. Уместо тога, користите класу као независни елемент омотача.

Ефекат анимације ове компоненте зависи од prefers-reduced-motionмедијског упита. Погледајте одељак о смањеном покрету наше документације о приступачности .

Пример

Кликните на дугмад испод да бисте приказали и сакрили други елемент путем промена класе:

  • .collapseскрива садржај
  • .collapsingпримењује се током прелаза
  • .collapse.showприказује садржај

Генерално, препоручујемо коришћење дугмета са data-targetатрибутом. Иако се са семантичке тачке гледишта не препоручује, такође можете користити везу са hrefатрибутом (и role="button"). У оба случаја data-toggle="collapse"је потребно.

Some placeholder content for the collapse component. This panel is hidden by default but revealed when the user activates the relevant trigger.
<p>
  <a class="btn btn-primary" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
    Link with href
  </a>
  <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
    Button with data-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>

Хоризонтално

Додатак за колапс такође подржава хоризонтално сажимање. Додајте .widthкласу модификатора да бисте прешли widthуместо heightи поставите а widthна непосредно подређени елемент. Слободно напишите сопствени прилагођени Сасс, користите уграђене стилове или користите наше услужне програме за ширину .

Имајте на уму да иако пример испод има min-heightсет за избегавање прекомерног пресликавања у нашим документима, то није изричито потребно. Потребан је само widthподређени елемент.

This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
<p>
  <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
    Toggle width collapse
  </button>
</p>
<div style="min-height: 120px;">
  <div class="collapse width" id="collapseWidthExample">
    <div class="card card-body" style="width: 320px;">
      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-targetатрибуту. Вишеструки <button>или <a>могу да прикажу и сакрију елемент ако сваки од њих референцира са својим hrefили data-targetатрибутом

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.
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.
<p>
  <a class="btn btn-primary" data-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
  <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
  <button class="btn btn-primary" type="button" data-toggle="collapse" data-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>

Пример хармонике

Користећи компоненту картице , можете проширити подразумевано понашање сажимања да бисте направили хармонику. Да бисте правилно постигли стил хармонике, обавезно користите .accordionкао омот.

Неки садржај за чување места за први панел хармонике. Овај панел се подразумевано приказује, захваљујући .showкласи.

Some placeholder content for the second accordion panel. This panel is hidden by default.

And lastly, the placeholder content for the third and final accordion panel. This panel is hidden by default.
<div class="accordion" id="accordionExample">
  <div class="card">
    <div class="card-header" id="headingOne">
      <h2 class="mb-0">
        <button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
          Collapsible Group Item #1
        </button>
      </h2>
    </div>

    <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
      <div class="card-body">
        Some placeholder content for the first accordion panel. This panel is shown by default, thanks to the <code>.show</code> class.
      </div>
    </div>
  </div>
  <div class="card">
    <div class="card-header" id="headingTwo">
      <h2 class="mb-0">
        <button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
          Collapsible Group Item #2
        </button>
      </h2>
    </div>
    <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
      <div class="card-body">
        Some placeholder content for the second accordion panel. This panel is hidden by default.
      </div>
    </div>
  </div>
  <div class="card">
    <div class="card-header" id="headingThree">
      <h2 class="mb-0">
        <button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
          Collapsible Group Item #3
        </button>
      </h2>
    </div>
    <div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
      <div class="card-body">
        And lastly, the placeholder content for the third and final accordion panel. This panel is hidden by default.
      </div>
    </div>
  </div>
</div>

Приступачност

Обавезно додајте aria-expandedконтролни елемент. Овај атрибут експлицитно преноси тренутно стање склопивог елемента повезаног са контролом читачима екрана и сличним помоћним технологијама. Ако је склопиви елемент затворен по подразумеваној вредности, атрибут на контролном елементу треба да има вредност aria-expanded="false". Ако сте подесили да склопиви елемент буде подразумевано отворен помоћу showкласе, aria-expanded="true"уместо тога поставите на контроли. Додатак ће аутоматски укључити овај атрибут на контроли на основу тога да ли је склопиви елемент отворен или затворен (преко ЈаваСцрипт-а или зато што је корисник покренуо други контролни елемент који је такође везан за исти склопиви елемент). Ако ХТМЛ елемент контролног елемента није дугме (нпр. <a>или <div>), атрибутrole="button"треба додати елементу.

Ако ваш контролни елемент циља на један склопиви елемент – тј. data-targetатрибут показује на idселектор – требало би да додате aria-controlsатрибут контролном елементу, који садржи idелемент склопивог. Савремени читачи екрана и сличне помоћне технологије користе овај атрибут како би корисницима пружиле додатне пречице за навигацију директно до самог склопивог елемента.

Имајте на уму да Боотстрап-ова тренутна имплементација не покрива различите интеракције са тастатуром описане у АРИА-овом водичу за ауторске праксе за хармонику – мораћете да их сами укључите у прилагођени ЈаваСцрипт.

Употреба

Додатак за колапс користи неколико класа да би се носио са тешким подизањем:

  • .collapseсакрива садржај
  • .collapse.showприказује садржај
  • .collapsingсе додаје када транзиција почне, а уклања се када се заврши

Ове класе се могу наћи у _transitions.scss.

Преко атрибута података

Само додајте data-toggle="collapse"и а data-targetелементу да бисте аутоматски доделили контролу над једним или више склопивих елемената. Атрибут data-targetприхвата ЦСС селектор за примену скупљања. Обавезно додајте класу collapseу склопиви елемент. Ако желите да се подразумевано отвори, додајте додатну класу show.

Да бисте додали управљање групама налик хармоници у склопиву област, додајте атрибут података data-parent="#selector". Погледајте демо да видите ово у акцији.

Преко ЈаваСцрипт-а

Омогућите ручно помоћу:

$('.collapse').collapse()

Опције

Опције се могу пренети преко атрибута података или ЈаваСцрипт-а. За атрибуте података додајте име опције у data-, као у data-parent="".

Име Тип Уобичајено Опис
родитељ селектор | јКуери објекат | ДОМ елемент лажно Ако је наведен родитељ, онда ће сви склопиви елементи испод наведеног надређеног бити затворени када се прикаже ова склопива ставка. (слично традиционалном понашању хармонике - ово зависи од cardкласе). Атрибут мора бити постављен на циљну склопиву област.
искључи боолеан истинито Укључује склопиви елемент при позивању

Методе

Асинхроне методе и прелази

Све АПИ методе су асинхроне и покрећу транзицију . Они се враћају позиваоцу чим се транзиција започне, али пре него што се заврши . Поред тога, позив методе за прелазну компоненту биће занемарен .

Погледајте нашу ЈаваСцрипт документацију за више информација .

.collapse(options)

Активира ваш садржај као склопиви елемент. Прихвата опционе опције object.

$('#myCollapsible').collapse({
  toggle: false
})

.collapse('toggle')

Пребацује склопиви елемент на приказан или сакривен. Враћа позиваоцу пре него што је склопиви елемент заиста приказан или сакривен (тј. пре него што се деси догађај shown.bs.collapseили ).hidden.bs.collapse

.collapse('show')

Приказује склопиви елемент. Враћа позиваоцу пре него што је склопиви елемент заправо приказан (тј. пре него што се shown.bs.collapseдогађај деси).

.collapse('hide')

Сакрива склопиви елемент. Враћа позиваоцу пре него што је склопиви елемент заиста сакривен (тј. пре него што се hidden.bs.collapseдогађај деси).

.collapse('dispose')

Уништава колапс елемента.

Догађаји

Боотстрап-ова класа колапса излаже неколико догађаја за спајање на функционалност колапса.

Тип догађаја Опис
схов.бс.цоллапсе Овај догађај се покреће одмах када showсе позове метод инстанце.
приказано.бс.цоллапсе Овај догађај се покреће када се кориснику учини видљивим елемент сажимања (сачекаће да се ЦСС транзиције доврше).
хиде.бс.цоллапсе Овај догађај се покреће одмах када се hideметода позове.
хидден.бс.цоллапсе Овај догађај се покреће када је елемент сажимања сакривен од корисника (сачекаће да се ЦСС транзиције доврше).
$('#myCollapsible').on('hidden.bs.collapse', function () {
  // do something...
})