07/09/2022
I en verden hvor digitalt indhold bliver stadigt mere omfattende, er evnen til at præsentere information på en overskuelig og pladsbesparende måde afgørende for brugeroplevelsen. Her kommer Boostraps sammenklappelige elementer – ofte kaldet 'collapse' – ind i billedet. De giver dig mulighed for at skjule eller vise indhold med et enkelt klik, hvilket er ideelt til FAQ-sektioner, detaljerede produktbeskrivelser eller komplekse menustrukturer. Denne funktionalitet er ikke kun en æstetisk forbedring; den bidrager også til en mere strømlinet og intuitiv navigation for dine brugere.

Boostrap Collapse er en kraftfuld JavaScript-plugin, der tilføjer fleksibel understøttelse til sammenklappelige komponenter som harmonika-menuer (accordions) og navigationsstrukturer. Det er en del af Boostraps JavaScript-pakke og kræver, at transitions-plugin'en er inkluderet for at sikre de smidige animationer, når elementerne folder sig ud eller sammen. Lad os dykke ned i, hvordan du kan implementere og udnytte denne funktion fuldt ud på dine hjemmesider.
Boostraps sammenklappelige elementer er designet til at være utroligt nemme at bruge, uanset om du foretrækker at arbejde direkte i HTML med data-attributter eller via JavaScript for mere dynamisk kontrol. De grundlæggende principper er de samme: et udløserelement (som en knap eller et link) og et målellement, der skal foldes ud eller sammen. Ved at mestre denne funktionalitet kan du skabe mere interaktive og responsive designs, der holder dine besøgende engagerede og forbedrer den samlede brugervenlighed af din side.
- Forstå de Grundlæggende Klasser for Sammenklappelige Elementer
- Metoder til Oprettelse af Sammenklappelige Elementer
- Sammenklappelighedsindstillinger og Hændelser
- Praktiske Eksempler og Anvendelser
- Bootstrap 4 vs. Bootstrap 5: En Vigtig Forskel
- Oversigt over Metoder og Hændelser
- Ofte Stillede Spørgsmål om Sammenklappelige Elementer
Forstå de Grundlæggende Klasser for Sammenklappelige Elementer
For at arbejde med Boostraps sammenklappelige elementer er det vigtigt at forstå de CSS-klasser, der styrer deres opførsel. Disse klasser definerer, hvordan elementet vises og opfører sig under overgangen:
.collapse: Denne klasse anvendes på det element, der skal være sammenklappeligt, og sikrer, at indholdet som standard er skjult. Det er den primære klasse, der gør et element 'sammenklappeligt'..collapse in: Hvis du ønsker, at det sammenklappelige element skal være synligt som standard, tilføjer du klasseninud over.collapse. Dette er nyttigt, hvis en specifik sektion skal være åben, når siden indlæses, eller som en del af en harmonika-menu, hvor den første sektion ofte er åben..collapsing: Denne klasse tilføjes automatisk af Bootstrap, når overgangen (udfoldning eller sammenfoldning) starter, og fjernes igen, når overgangen er fuldført. Den bruges internt af Bootstrap til at håndtere animationerne og CSS-overgange og bør normalt ikke manipuleres direkte af udvikleren.
Disse klasser arbejder sammen med Boostraps JavaScript-plugin for at skabe en flydende og responsiv brugeroplevelse. Når et element skifter mellem at være skjult og vist, håndterer Bootstrap automatisk tilføjelsen og fjernelsen af disse klasser, hvilket sikrer en glidende animation.
Metoder til Oprettelse af Sammenklappelige Elementer
Der er to primære måder at implementere sammenklappelige elementer på i Bootstrap: via data-* attributter direkte i HTML eller via JavaScript.
1. Via data-Attributter (Den Nemmeste Metode)
Den mest ligetil måde at oprette et sammenklappeligt element på er ved at bruge data-* attributter. Dette kræver ingen JavaScript-kode, da Bootstrap automatisk initialiserer funktionaliteten, når siden indlæses.
Du skal blot tilføje data-toggle="collapse" til et udløserelement (f.eks. en knap eller et link) og en data-target attribut, der peger på det sammenklappelige elementets ID (f.eks. #demo). Sørg for, at det sammenklappelige element har klassen .collapse. Hvis det skal være åbent som standard, tilføj da også klassen in.
<button class="btn btn-info" data-toggle="collapse" data-target="#minTekst">Vis/Skjul Tekst</button> <div id="minTekst" class="collapse"> <p>Dette er den tekst, der kan foldes ud og sammen.</p> <p>Den kan indeholde en masse information, som du kun vil vise ved behov.</p> </div>
For at skabe en harmonika-lignende gruppe, hvor kun ét element kan være åbent ad gangen, tilføjer du data-parent="#selector" til de sammenklappelige elementer, hvor #selector er ID'et på den fælles forælder, der indeholder alle de sammenklappelige elementer. Dette er kernen i at bygge en harmonika-menu.
2. Via JavaScript (For Mere Avanceret Kontrol)
Hvis du har brug for mere finmasket kontrol over de sammenklappelige elementer – f.eks. at udløse dem programmatisk baseret på brugerhandlinger eller andre scripts – kan du aktivere dem manuelt med JavaScript:
$('.collapse').collapse()Dette initialiserer alle elementer med klassen .collapse. Du kan også bruge specifikke metoder til at styre elementernes tilstand:
.collapse("toggle"): Skifter mellem at vise og skjule det sammenklappelige element..collapse("show"): Viser det sammenklappelige element..collapse("hide"): Skjuler det sammenklappelige element.
Disse metoder giver dig mulighed for at bygge mere komplekse interaktioner, hvor du f.eks. kan udløse et sammenklappeligt element baseret på en timer, en serverrespons eller en kombination af flere brugerhandlinger.

Sammenklappelighedsindstillinger og Hændelser
Bootstrap Collapse tilbyder også en række indstillinger og hændelser, der giver dig yderligere kontrol og mulighed for at reagere på brugerinteraktioner.
Indstillinger (Options)
Indstillinger kan sendes via data-* attributter eller JavaScript. For data-* attributter tilføjes indstillingsnavnet til data-, f.eks. data-parent="".
parent(selector, default:false): Hvis angivet, vil alle sammenklappelige elementer under den specificerede forælder blive lukket, når dette sammenklappelige element vises. Dette efterligner traditionel harmonika-adfærd. Kræver at forælderen har en specifik klasse (f.eks..panel-group).toggle(boolean, default:true): Bestemmer, om det sammenklappelige element skal skifte tilstand (åbne/lukke) ved aktivering. Hvis sat tilfalse, skal du manuelt kaldeshowellerhidemetoderne.
Hændelser (Events)
Bootstrap Collapse udløser en række hændelser, som du kan lytte efter med JavaScript for at udføre brugerdefinerede handlinger, når et element ændrer tilstand. Dette er utroligt nyttigt for at tilføje yderligere logik, animationer eller opdateringer til din side.
show.bs.collapse: Udløses lige inden det sammenklappelige element vises.shown.bs.collapse: Udløses, når det sammenklappelige element er fuldt vist (efter CSS-overgange er afsluttet).hide.bs.collapse: Udløses lige inden det sammenklappelige element skjules.hidden.bs.collapse: Udløses, når det sammenklappelige element er fuldt skjult (efter CSS-overgange er afsluttet).
Du kan lytte til disse hændelser med jQuery:
$('#mitElement').on('shown.bs.collapse', function () { // Gør noget, når elementet er fuldt vist console.log('Elementet er nu synligt!'); });Praktiske Eksempler og Anvendelser
Lad os se på nogle konkrete eksempler på, hvordan sammenklappelige elementer kan bruges i praksis for at forbedre din hjemmesides brugervenlighed.
Simpel Sammenklappelig Knap
Det mest grundlæggende eksempel er en knap, der skifter synligheden af en tekstblok:
<button type="button" class="btn btn-info" data-toggle="collapse" data-target="#simpleDemo"> Klik for at se mere </button> <div id="simpleDemo" class="collapse in"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p> </div>
Bemærk .collapse in, der gør indholdet synligt fra start.
Sammenklappelig Listegruppe
Du kan nemt integrere sammenklappelige elementer med andre Bootstrap-komponenter, som f.eks. listegrupper eller paneler (bemærk at .panel-komponenten er udfaset i Bootstrap 5, men var almindelig i Bootstrap 3/4).
<div class="panel-group"> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" href="#listCollapse">Sammenklappelig Listegruppe</a> </h4> </div> <div id="listCollapse" class="panel-collapse collapse"> <ul class="list-group"> <li class="list-group-item">Element Et</li> <li class="list-group-item">Element To</li> <li class="list-group-item">Element Tre</li> </ul> <div class="panel-footer">Fodnote</div> </div> </div> </div>
Dette viser, hvordan du kan strukturere indhold i en listegruppe, der kan foldes ud og sammen, hvilket er perfekt til navigationsmenuer eller detaljerede lister.
Harmonika-menuer er en af de mest populære anvendelser af sammenklappelige elementer. De er ideelle til FAQ-sektioner, hvor du kun ønsker at vise ét svar ad gangen.

<div class="panel-group" id="accordion"> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne"> Spørgsmål 1: Hvad er Bootstrap?</a> </h4> </div> <div id="collapseOne" class="panel-collapse collapse in"> <div class="panel-body"> Bootstrap er et gratis front-end framework til hurtig og nem webudvikling. </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo"> Spørgsmål 2: Hvad er et sammenklappeligt element?</a> </h4> </div> <div id="collapseTwo" class="panel-collapse collapse"> <div class="panel-body"> Et sammenklappeligt element er en komponent, der skjuler og viser indhold efter behov. </div> </div> </div> </div>
Nøglen her er data-parent="#accordion", som sikrer, at når en sektion åbnes, lukkes alle andre sektioner inden for den samme data-parent-gruppe automatisk.
Bootstrap 4 vs. Bootstrap 5: En Vigtig Forskel
Det er vigtigt at bemærke, at der er en væsentlig syntaksændring mellem Bootstrap 4 og Bootstrap 5, især når det kommer til data-* attributter. Hvis du arbejder med Bootstrap 5, skal du bruge data-bs-toggle og data-bs-target i stedet for data-toggle og data-target.
For eksempel:
- Bootstrap 4:
<button data-toggle="collapse" data-target="#myElement"> - Bootstrap 5:
<button data-bs-toggle="collapse" data-bs-target="#myElement">
Sørg altid for at tjekke, hvilken version af Bootstrap du bruger, for at undgå kompatibilitetsproblemer. Referencer til de korrekte CDN-filer for CSS og JavaScript er også afgørende for, at kollaps-funktionaliteten virker korrekt.
Oversigt over Metoder og Hændelser
For at give et hurtigt overblik over de vigtigste JavaScript-metoder og hændelser, har vi samlet dem i en tabel:
| Metode/Hændelse | Type | Beskrivelse | Anvendelse |
|---|---|---|---|
.collapse(options) | Metode | Aktiverer det sammenklappelige element med angivne indstillinger. | $('.element').collapse({toggle: false}) |
.collapse("toggle") | Metode | Skifter mellem vis/skjul for elementet. | $('#mitElement').collapse('toggle') |
.collapse("show") | Metode | Viser det sammenklappelige element. | $('#mitElement').collapse('show') |
.collapse("hide") | Metode | Skjuler det sammenklappelige element. | $('#mitElement').collapse('hide') |
show.bs.collapse | Hændelse | Udløses lige inden elementet vises. | Tilføj animationer, før elementet er synligt. |
shown.bs.collapse | Hændelse | Udløses, når elementet er fuldt vist. | Opdater indhold, når elementet er synligt. |
hide.bs.collapse | Hændelse | Udløses lige inden elementet skjules. | Gem data, før elementet forsvinder. |
hidden.bs.collapse | Hændelse | Udløses, når elementet er fuldt skjult. | Ryd op i ressourcer, når elementet er skjult. |
Ofte Stillede Spørgsmål om Sammenklappelige Elementer
Her er svar på nogle almindelige spørgsmål, der ofte opstår, når man arbejder med Boostraps sammenklappelige elementer:
Hvordan får jeg et sammenklappeligt element til at være åbent som standard?
Du skal blot tilføje klassen in ud over .collapse til det element, der skal være åbent. For eksempel: <div id="mitElement" class="collapse in">...</div>. I Bootstrap 5 er klassen .show, så det ville være <div id="mitElement" class="collapse show">...</div>.
Hvorfor virker mit sammenklappelige element ikke?
Der kan være flere årsager:
- Manglende JavaScript/jQuery: Sørg for, at du har inkluderet jQuery (hvis du bruger Bootstrap 4 eller ældre) og Boostraps JavaScript-filer (
bootstrap.bundle.min.jsellerbootstrap.min.jspluspopper.min.js). - Forkerte
data-*attributter: Tjek om du brugerdata-toggle="collapse"og den korrektedata-target="#ditID". Husk forskellen mellem Bootstrap 4 (data-toggle) og Bootstrap 5 (data-bs-toggle). - Forkert ID: Kontroller, at
data-targetpeger på det korrekte ID for det element, der skal foldes ud. - Manglende
.collapseklasse: Elementet, der skal foldes ud, skal have klassen.collapse. - Konflikter med andre scripts: Nogle gange kan andre JavaScript-biblioteker forårsage konflikter. Prøv at isolere problemet.
Kan jeg skifte ikoner eller tekst på knappen, når elementet foldes ud/sammen?
Ja, det kan du. Du kan bruge JavaScript til at lytte til show.bs.collapse og hide.bs.collapse hændelserne og derefter ændre knapteksten eller et ikon, f.eks. ved at tilføje/fjerne en CSS-klasse eller direkte manipulere DOM'en. Dette giver en god visuel feedback til brugeren.
Hvad er forskellen mellem .collapse og .collapsing?
.collapse er den statiske klasse, der definerer et elements grundlæggende sammenklappelighed og skjuler det som standard. .collapsing er en dynamisk klasse, der tilføjes midlertidigt under selve overgangsfasen (animationen) af Bootstrap. Du bør kun arbejde med .collapse i din HTML.
For at lave en harmonika-menu skal du omslutte dine sammenklappelige elementer i en fælles forælder (f.eks. en <div>). Derefter skal du tilføje data-parent="#ditForælderID" til hvert af de sammenklappelige elementer. Dette fortæller Bootstrap, at kun ét element inden for denne forældregruppe må være åbent ad gangen.
Sammenklappelige elementer i Bootstrap er en uundværlig del af moderne webdesign, der giver dig mulighed for at organisere indhold effektivt og forbedre brugeroplevelsen. Ved at mestre brugen af data-* attributter og JavaScript kan du skabe dynamiske og interaktive sider, der tilpasser sig brugerens behov og skærmstørrelse. Uanset om du bygger en simpel FAQ eller en kompleks navigationsstruktur, tilbyder Boostraps collapse-plugin de værktøjer, du har brug for.
Hvis du vil læse andre artikler, der ligner Skab Dynamiske Sammenklappelige Elementer med Bootstrap, kan du besøge kategorien Mobil.
