Ugrás a fő tartalomhoz Ugrás a dokumentumok navigációjához
in English

Összeomlás

Néhány osztállyal és JavaScript beépülő moduljainkkal átkapcsolhatja a tartalom láthatóságát a projektben.

Hogyan működik

Az összecsukható JavaScript beépülő modul a tartalom megjelenítésére és elrejtésére szolgál. A gombok vagy horgonyok triggerekként használatosak, amelyek a váltott elemekhez vannak leképezve. Egy elem összecsukásakor az heightaktuális értékről a -ra animálja 0. Tekintettel arra, hogy a CSS hogyan kezeli az animációkat, nem használható paddingelemeken .collapse. Ehelyett használja az osztályt független burkolóelemként.

Ennek az összetevőnek az animációs hatása a médialekérdezéstől függ prefers-reduced-motion. Tekintse meg akadálymentesítési dokumentációnk csökkentett mozgással foglalkozó részét .

Példa

Kattintson az alábbi gombokra egy másik elem megjelenítéséhez és elrejtéséhez osztálymódosításokon keresztül:

  • .collapsetartalmat rejt
  • .collapsingátmenetek során alkalmazzák
  • .collapse.showtartalmat mutat

data-bs-targetÁltalában az attribútummal rendelkező gomb használatát javasoljuk . Bár szemantikai szempontból nem ajánlott, az hrefattribútummal (és egy role="button") hivatkozást is használhat. Mindkét esetben data-bs-toggle="collapse"kötelező.

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-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>

Több célpont

A <button>vagy <a>több elemet is megjeleníthet és elrejthet, ha hivatkozik rájuk a hrefvagy data-bs-targetattribútumában található választóval. Több <button>vagy <a>megjeleníthet és elrejthet egy elemet, ha mindegyik a hrefvagy data-bs-targetattribútummal hivatkozik rá

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-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>

Megközelíthetőség

Feltétlenül adja hozzá aria-expandeda vezérlőelemet. Ez az attribútum kifejezetten közvetíti a vezérlőhöz kapcsolódó összecsukható elem aktuális állapotát a képernyőolvasóknak és a hasonló kisegítő technológiáknak. Ha az összecsukható elem alapértelmezés szerint be van zárva, akkor a vezérlőelem attribútumának értékűnek kell lennie aria-expanded="false". Ha az összecsukható elemet alapértelmezés szerint nyitottnak állította be az showosztály használatával, aria-expanded="true"akkor inkább a vezérlőn állítsa be. A beépülő modul automatikusan átkapcsolja ezt az attribútumot a vezérlőn attól függően, hogy az összecsukható elemet megnyitották-e vagy bezárták-e (JavaScripten keresztül, vagy azért, mert a felhasználó egy másik, ugyanahhoz az összecsukható elemhez kötött vezérlőelemet váltott ki). Ha a vezérlőelem HTML-eleme nem gomb (pl. egy <a>vagy <div>), akkor az attribútumrole="button"hozzá kell adni az elemhez.

Ha a vezérlőelem egyetlen összecsukható elemet céloz meg – azaz az data-bs-targetattribútum egy idszelektorra mutat –, akkor az attribútumot hozzá kell adni az összecsukható elemet aria-controlstartalmazó vezérlőelemhez . idA modern képernyőolvasók és a hasonló kisegítő technológiák ezt az attribútumot használják fel, hogy további parancsikonokat biztosítsanak a felhasználóknak, amelyekkel közvetlenül az összecsukható elemhez navigálhatnak.

Ne feledje, hogy a Bootstrap jelenlegi megvalósítása nem fedi le a WAI-ARIA Authoring Practices 1.1 harmonikamintában leírt különféle választható billentyűzet-interakciókat – ezeket Önnek kell beépítenie az egyéni JavaScriptbe.

Sass

Változók

$transition-collapse:         height .35s ease;

osztályok

Összecsukási átmeneti osztályok találhatók, scss/_transitions.scssmivel ezek több összetevő között vannak megosztva (összecsukás és harmonika).

.collapse {
  &:not(.show) {
    display: none;
  }
}

.collapsing {
  height: 0;
  overflow: hidden;
  @include transition($transition-collapse);
}

Használat

A collapse plugin néhány osztályt használ a nehéz emelés kezelésére:

  • .collapseelrejti a tartalmat
  • .collapse.showmutatja a tartalmat
  • .collapsinghozzáadódik az átmenet megkezdésekor, és eltávolítja, amikor befejeződik

Ezek az osztályok itt találhatók _transitions.scss.

Adatattribútumokon keresztül

Csak adja hozzá az elemet data-bs-toggle="collapse"és egy data-bs-targetelemet, hogy automatikusan hozzárendelje egy vagy több összecsukható elem vezérlését. Az data-bs-targetattribútum elfogad egy CSS-választót az összecsukás alkalmazásához. Feltétlenül adja hozzá az osztályt collapseaz összecsukható elemhez. Ha azt szeretné, hogy alapértelmezetten megnyíljon, adja hozzá a további osztályt show.

Ha harmonikaszerű csoportkezelést szeretne hozzáadni egy összecsukható területhez, adja hozzá a data attribútumot data-bs-parent="#selector". Tekintse meg a bemutatót, hogy megtekinthesse ezt működés közben.

JavaScripten keresztül

Manuális engedélyezés a következőkkel:

var collapseElementList = [].slice.call(document.querySelectorAll('.collapse'))
var collapseList = collapseElementList.map(function (collapseEl) {
  return new bootstrap.Collapse(collapseEl)
})

Lehetőségek

Az opciók átadhatók adatattribútumokon vagy JavaScripten keresztül. Az adatattribútumokhoz fűzze hozzá az opció nevét a data-bs-következőhöz: data-bs-parent="".

Név típus Alapértelmezett Leírás
parent választó | jQuery objektum | DOM elem false Ha szülő van megadva, akkor a megadott szülő alatti összes összecsukható elem bezárul, amikor ez az összecsukható elem megjelenik. (hasonlóan a hagyományos harmonika viselkedéshez - ez cardosztályfüggő). Az attribútumot a célösszecsukható területen kell beállítani.
toggle logikai érték true Bekapcsolja az összecsukható elemet híváskor

Mód

Aszinkron módszerek és átmenetek

Minden API metódus aszinkron , és átmenetet indít . Visszatérnek a hívóhoz, amint az átmenet elkezdődik, de még azelőtt, hogy az véget érne . Ezenkívül a rendszer figyelmen kívül hagyja az átmeneti komponens metódushívásait .

További információért tekintse meg JavaScript dokumentációnkat .

A tartalmat összecsukható elemként aktiválja. Elfogad egy opcionális opciót object.

A konstruktorral összecsukható példányt hozhat létre, például:

var myCollapse = document.getElementById('myCollapse')
var bsCollapse = new bootstrap.Collapse(myCollapse, {
  toggle: false
})
Módszer Leírás
toggle Az összecsukható elemet megjelenített vagy rejtett állapotba kapcsolja. Visszatér a hívóhoz, mielőtt az összecsukható elem ténylegesen megjelenne vagy elrejtődne (azaz mielőtt a shown.bs.collapsevagy hidden.bs.collapseesemény bekövetkezne).
show Összecsukható elemet jelenít meg. Visszatér a hívóhoz, mielőtt az összecsukható elem ténylegesen megjelenne (pl. az shown.bs.collapseesemény bekövetkezte előtt).
hide Elrejti az összecsukható elemet. Visszatér a hívóhoz, mielőtt az összecsukható elem ténylegesen el lett volna rejtve (pl. az hidden.bs.collapseesemény bekövetkezte előtt).
dispose Elpusztítja egy elem összeomlását. (Eltávolítja a DOM elemen tárolt adatokat)
getInstance A statikus metódus, amely lehetővé teszi a DOM-elemhez társított összecsukási példány lekérését, a következőképpen használhatja:bootstrap.Collapse.getInstance(element)
getOrCreateInstance Statikus módszer, amely egy DOM-elemhez társított összecsukott példányt ad vissza, vagy újat hoz létre, ha nem inicializálták. Így használhatod:bootstrap.Collapse.getOrCreateInstance(element)

Események

A Bootstrap összecsukási osztálya felfed néhány eseményt az összecsukási funkcióhoz való kapcsolódáshoz.

Esemény típus Leírás
show.bs.collapse Ez az esemény azonnal aktiválódik a showpéldánymetódus meghívásakor.
shown.bs.collapse Ez az esemény akkor aktiválódik, amikor egy összecsukott elem láthatóvá lett a felhasználó számára (megvárja a CSS-átmenetek befejezését).
hide.bs.collapse Ez az esemény azonnal aktiválódik, amikor a hidemetódus meghívásra került.
hidden.bs.collapse Ez az esemény akkor aktiválódik, amikor egy összecsukott elemet elrejtettek a felhasználó elől (megvárja a CSS-átmenetek befejezését).
var myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', function () {
  // do something...
})