Bryder sammen
Skift synligheden af indhold på tværs af dit projekt med nogle få klasser og vores JavaScript-plugins.
Hvordan det virker
Collapse JavaScript-plugin'et bruges til at vise og skjule indhold. Knapper eller ankre bruges som udløsere, der er knyttet til bestemte elementer, du skifter til. Hvis du skjuler et element, animeres det height
fra dets aktuelle værdi til 0
. I betragtning af hvordan CSS håndterer animationer, kan du ikke bruge padding
på et .collapse
element. Brug i stedet klassen som et selvstændigt indpakningselement.
prefers-reduced-motion
medieforespørgslen. Se afsnittet om
reduceret bevægelse i vores tilgængelighedsdokumentation .
Eksempel
Klik på knapperne nedenfor for at vise og skjule et andet element via klasseændringer:
.collapse
skjuler indhold.collapsing
anvendes under overgange.collapse.show
viser indhold
Generelt anbefaler vi at bruge en knap med data-target
attributten. Selvom det ikke anbefales fra et semantisk synspunkt, kan du også bruge et link med href
attributten (og en role="button"
). I begge tilfælde er det data-toggle="collapse"
påkrævet.
<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>
Vandret
Collapse-pluginnet understøtter også horisontal kollaps. Tilføj .width
modifikatorklassen for at overføre i width
stedet for height
og indstil a width
på det umiddelbare underordnede element. Du er velkommen til at skrive din egen tilpassede Sass, bruge inline-stile eller bruge vores breddeværktøjer .
min-height
sæt til at undgå overdreven maling i vores dokumenter, er dette ikke eksplicit påkrævet.
Kun width
on the child-elementet er påkrævet.
<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>
Flere mål
En <button>
eller <a>
kan vise og skjule flere elementer ved at henvise til dem med en JQuery-vælger i dens href
eller data-target
attribut. Flere <button>
eller <a>
kan vise og skjule et element, hvis de hver især refererer til det med deres href
eller data-target
attribut
<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>
Eksempel på harmonika
Ved at bruge kortkomponenten kan du udvide standardsammenbrudsadfærden for at skabe en harmonika. For korrekt at opnå harmonikastilen skal du sørge for at bruge .accordion
som indpakning.
.show
klassen.
<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>
Tilgængelighed
Sørg for at tilføje aria-expanded
til kontrolelementet. Denne attribut formidler eksplicit den aktuelle tilstand af det sammenklappelige element, der er knyttet til styringen, til skærmlæsere og lignende hjælpeteknologier. Hvis det sammenklappelige element er lukket som standard, skal attributten på kontrolelementet have en værdi på aria-expanded="false"
. Hvis du har indstillet det sammenklappelige element til at være åbent som standard ved hjælp af show
klassen, skal du indstille aria-expanded="true"
på kontrolelementet i stedet. Plugin'et vil automatisk skifte denne attribut på kontrolelementet baseret på, om det sammenklappelige element er blevet åbnet eller lukket (via JavaScript, eller fordi brugeren udløste et andet kontrolelement, der også er bundet til det samme sammenklappelige element). Hvis kontrolelementets HTML-element ikke er en knap (f.eks. en <a>
eller <div>
), attributtenrole="button"
skal tilføjes til elementet.
Hvis dit kontrolelement er målrettet mod et enkelt sammenklappeligt element - dvs. data-target
attributten peger på en id
vælger - skal du tilføje aria-controls
attributten til kontrolelementet, der indeholder id
det sammenklappelige element. Moderne skærmlæsere og lignende hjælpeteknologier gør brug af denne egenskab til at give brugerne yderligere genveje til at navigere direkte til selve det sammenklappelige element.
Bemærk, at Bootstraps nuværende implementering ikke dækker de forskellige tastaturinteraktioner, der er beskrevet i ARIA Authoring Practices Guide harmonikamønster - du skal selv inkludere disse med tilpasset JavaScript.
Brug
Collapse-pluginnet bruger et par klasser til at håndtere de tunge løft:
.collapse
skjuler indholdet.collapse.show
viser indholdet.collapsing
tilføjes, når overgangen starter, og fjernes, når den er færdig
Disse klasser kan findes i _transitions.scss
.
Via dataattributter
Du skal blot tilføje data-toggle="collapse"
og a data-target
til elementet for automatisk at tildele kontrol over et eller flere sammenfoldelige elementer. Attributten data-target
accepterer en CSS-vælger at anvende sammenbruddet på. Sørg for at tilføje klassen collapse
til det sammenklappelige element. Hvis du vil have den til at åbne som standard, skal du tilføje den ekstra klasse show
.
For at tilføje harmonika-lignende gruppestyring til et sammenklappeligt område skal du tilføje dataattributten data-parent="#selector"
. Se demoen for at se dette i aktion.
Via JavaScript
Aktiver manuelt med:
$('.collapse').collapse()
Muligheder
Indstillinger kan videregives via dataattributter eller JavaScript. For dataattributter skal du tilføje indstillingsnavnet til data-
, som i data-parent=""
.
Navn | Type | Standard | Beskrivelse |
---|---|---|---|
forælder | vælger | jQuery objekt | DOM element | falsk | Hvis overordnet er angivet, lukkes alle sammenfoldelige elementer under den angivne overordnede, når dette sammenklappelige element vises. (svarende til traditionel harmonikaadfærd - dette afhænger af card klassen). Attributten skal indstilles på det sammenklappelige målområde. |
skifte | boolesk | rigtigt | Slår det sammenklappelige element til eller fra ved kald |
Metoder
Asynkrone metoder og overgange
Alle API - metoder er asynkrone og starter en overgang . De vender tilbage til den, der ringer, så snart overgangen er startet, men før den slutter . Derudover vil et metodekald på en overgangskomponent blive ignoreret .
.collapse(options)
Aktiverer dit indhold som et sammenklappeligt element. Accepterer en valgfri indstilling object
.
$('#myCollapsible').collapse({
toggle: false
})
.collapse('toggle')
Skifter et sammenklappeligt element til at blive vist eller skjult. Vender tilbage til den, der ringer, før det sammenklappelige element faktisk er blevet vist eller skjult (dvs. før hændelsen shown.bs.collapse
eller hidden.bs.collapse
indtræffer).
.collapse('show')
Viser et sammenklappeligt element. Vender tilbage til den, der ringer, før det sammenklappelige element faktisk er blevet vist (dvs. før shown.bs.collapse
hændelsen indtræffer).
.collapse('hide')
Skjuler et sammenklappeligt element. Vender tilbage til den, der ringer, før det sammenklappelige element rent faktisk er blevet skjult (dvs. før hidden.bs.collapse
hændelsen indtræffer).
.collapse('dispose')
Ødelægger et elements sammenbrud.
Begivenheder
Bootstraps kollapsklasse afslører nogle få hændelser for at tilslutte sig sammenbrudsfunktionalitet.
Begivenhedstype | Beskrivelse |
---|---|
show.bs.kollaps | Denne hændelse udløses med det samme, når show instansmetoden kaldes. |
vist.bs.kollaps | Denne hændelse udløses, når et sammenbrudselement er blevet gjort synligt for brugeren (vil vente på, at CSS-overgange er fuldført). |
skjule.bs.kollapse | Denne hændelse udløses straks, når hide metoden er blevet kaldt. |
skjult.bs.kollaps | Denne hændelse udløses, når et sammenbrudselement er blevet skjult for brugeren (vil vente på, at CSS-overgange er fuldført). |
$('#myCollapsible').on('hidden.bs.collapse', function () {
// do something...
})