How to create an accordion in jQuery Mobile?

jQuery Mobile: Skab udvidelige indholdspaneler

02/07/2023

Rating: 4.32 (3266 votes)
Indholdsfortegnelse

Introduktion til jQuery Mobile Collapsible

I en verden hvor mobiltelefoner er vores primære adgangspunkt til information, er det essentielt at designe brugergrænseflader, der er både effektive og intuitive. jQuery Mobile adresserer netop dette behov med sin alsidige Collapsible-widget. Denne widget giver udviklere mulighed for at skabe indholdspaneler, der kan udvides og skjules ved et simpelt klik. Dette er særligt nyttigt på mobile enheder, hvor skærmpladsen er begrænset, og hvor en kompakt præsentation af information kan gøre en stor forskel for brugeroplevelsen. Ved blot at tildele attributten data-role="collapsible" til en container, kan du transformere almindeligt indhold til et interaktivt og pladsbesparende element.

What does UI-collapsible-content-collapsed mean?
ui-collapsible-content: Content of the collapsible. Additionally contains ui-collapsible-content-collapsed class in case the content is collapsed. When you add the data-collapsed="false" attribute to the wrapper the collapsible will initially be expanded. I'm the collapsible content.

Grundlæggende Collapsible

Det grundlæggende princip bag jQuery Mobiles Collapsible er enkelt. Inden i en container med data-role="collapsible" kan du inkludere en header, typisk et <h3>-element eller et <legend>. jQuery Mobile styler automatisk denne header, så den ligner en klikbar knap, og tilføjer et '+' ikon til venstre for headeren for at indikere, at indholdet kan udvides. Alt HTML-indhold, der placeres efter headeren, vil blive det indhold, der vises eller skjules. Som standard er dette indhold skjult. Når brugeren klikker på headeren, udvides indholdet, og '+' ikonet skifter til et '-' ikon, hvilket signalerer, at indholdet nu er synligt og kan skjules igen ved et nyt klik.

Lad os illustrere dette med et simpelt eksempel:

<div data-role="collapsible"> <h3>Klik her for at se indhold</h3> <p>Dette er det indhold, der bliver vist eller skjult.</p> </div>

Når denne kode vises i en browser, vil du se en header, der ligner en knap med et '+' ikon. Ved at klikke på denne header, vil paragrafen med teksten "Dette er det indhold, der bliver vist eller skjult." blive synlig under headeren, og ikonet vil ændre sig til et '-'. Klikker du igen, skjules indholdet, og ikonet vender tilbage til '+'.

Tilpasning: Temaer, Ekspansion, Ikoner og Ikonplacering

jQuery Mobile tilbyder omfattende muligheder for at tilpasse udseendet og adfærden af dine collapsible elementer. Hvis du ønsker, at indholdet skal være synligt, når siden indlæses, kan du simpelthen tilføje attributten data-collapsed="false" til din container. Dette sikrer, at brugeren straks ser indholdet uden at skulle klikke på headeren først.

Ligesom med knapper kan du anvende forskellige temaer på dine collapsible elementer ved at bruge attributten data-theme. Dette giver dig mulighed for at matche collapsible elementernes udseende med resten af din sides design. Du kan også ændre standardikonerne for collapsible headers ved at bruge attributterne data-collapsed-icon og data-expanded-icon. jQuery Mobile leveres med et sæt af standardikoner, som du kan vælge imellem, såsom pile eller andre visuelle indikatorer for ekspansion og kollaps.

Desuden kan du styre placeringen af ikonet ved hjælp af attributten data-iconpos. Standardplaceringen er til venstre, men du kan ændre den til højre ved at sætte værdien til "right". Dette kan være nyttigt for at opnå et bestemt layout eller for at forbedre brugerens visuelle oplevelse.

Her er et eksempel, der demonstrerer disse tilpasningsmuligheder:

<div data-role="collapsible" data-collapsed="false" data-theme="b" data-content-theme="c" data-collapsed-icon="arrow-r" data-expanded-icon="arrow-d" data-iconpos="right"> <h3>Udvidet med tilpasninger</h3> <p>Dette collapsible element er som standard udvidet, har tema 'b' for headeren, tema 'c' for indholdet, bruger pileikoner og har ikonet placeret til højre.</p> </div>

Dette eksempel viser et collapsible element, der starter udvidet, har specifikke temaer for både header og indhold, bruger pilikoner og placerer ikonet til højre.

Indlejrede Collapsibles

jQuery Mobile understøtter også indlejrede collapsibles, hvilket betyder, at du kan placere et collapsible element inde i et andet. Dette er en kraftfuld funktion, der giver dig mulighed for at skabe hierarkiske strukturer og organisere komplekst indhold på en overskuelig måde. Hvert niveau af indlejring kan have sine egne tilpasninger, hvilket giver stor fleksibilitet i designet.

Overvej følgende eksempel på indlejrede collapsibles:

<div data-role="collapsible" data-theme="a"> <h3>Ydre Collapsible (Tema A)</h3> <p>Dette er indholdet af det ydre collapsible element.</p> <div data-role="collapsible" data-theme="b"> <h3>Indre Collapsible (Tema B)</h3> <p>Dette er indholdet af det indre collapsible element.</p> </div> </div>

Når du klikker på den ydre header, udvides dens indhold, og den indlejrede collapsible bliver synlig. Du kan derefter klikke på den indre header for at udvide dens indhold uafhængigt af det ydre.

Collapsible Sæt (Accordeons)

En anden nyttig funktion er muligheden for at oprette et collapsible sæt, som i bund og grund fungerer som et accordion. Ved at gruppere flere individuelle collapsibles inden i en container med data-role="collapsible-set", sikrer du, at kun ét collapsible element kan være åbent ad gangen. Når et nyt element åbnes, lukkes det forrige automatisk. Dette er en klassisk accordion-funktionalitet, der er ideel til at præsentere flere relaterede sektioner på en ryddelig måde.

How to create a collapsible panel in jQuery Mobile?
jQuery Mobile provides a collapsible widget which allows you create expandable and collapsible content panels. Collapsibles are really useful in mobile devices that have space constraints as they present the content in a very compact manner. You just need to assign the role collapsible to the container to create a collapsible panel.

Her er et eksempel på et collapsible sæt:

<div data-role="collapsible-set"> <div data-role="collapsible"> <h3>Sektion 1</h3> <p>Indhold for sektion 1.</p> </div> <div data-role="collapsible"> <h3>Sektion 2</h3> <p>Indhold for sektion 2.</p> </div> <div data-role="collapsible"> <h3>Sektion 3</h3> <p>Indhold for sektion 3.</p> </div> </div>

I dette eksempel vil kun én af de tre sektioner kunne være åben på samme tid. Åbner du for eksempel Sektion 2, vil Sektion 1 automatisk blive lukket, hvis den var åben.

Sammenligning af Collapsible Typer

jQuery Mobile tilbyder forskellige måder at strukturere og vise udvideligt indhold på. Her er en oversigt over de mest almindelige typer:

TypeBeskrivelseAnvendelse
Grundlæggende CollapsibleEt enkelt udvidelsesbart indholdspanel.Visning af kort, detaljeret information, FAQ-sektioner.
Collapsible Sæt (Accordion)En gruppe af collapsibles, hvor kun ét kan være åbent ad gangen.Præsentation af flere relaterede emner, trin-for-trin guides.
Indlejrede CollapsiblesEt collapsible element inde i et andet collapsible element.Oprettelse af hierarkiske menuer, detaljerede oplysninger med underpunkter.

CSS Klasser og Stilarter

jQuery Mobile tildeler specifikke CSS-klasser til collapsible elementer, som kan bruges til yderligere tilpasning eller fejlfinding. Nogle af de vigtigste klasser inkluderer:

  • .ui-collapsible: Den yderste container for et collapsible element.
  • .ui-collapsible-heading: Den synlige del af collapsible, som brugeren klikker på. Indeholder .ui-collapsible-heading-collapsed, når elementet er skjult.
  • .ui-collapsible-heading-toggle: Elementet, der fungerer som afbryder for collapsible.
  • .ui-collapsible-heading-status: Viser status for toggleren (f.eks. ikon).
  • .ui-collapsible-content: Indholdssektionen, der vises eller skjules. Indeholder .ui-collapsible-content-collapsed, når indholdet er skjult.

Disse klasser giver mulighed for finjustering af udseendet, såsom at ændre marginer, padding, baggrundsfarver eller ikondesign.

Deprecering og Fremtidige Overvejelser

Det er vigtigt at bemærke, at jQuery Mobile Collapsible-widgeten er markeret som deprecieret siden version 1.5 og forventes fjernet i version 1.6. Dette betyder, at selvom den stadig fungerer, anbefales det at overveje at bruge Accordion-widgeten som erstatning for fremtidig udvikling. Accordion-widgeten tilbyder lignende funktionalitet og er den foretrukne løsning for accordion-lignende strukturer i nyere versioner af jQuery Mobile.

Ofte Stillede Spørgsmål (FAQ)

Hvad betyder ui-collapsible-content-collapsed?

ui-collapsible-content-collapsed er en CSS-klasse, som jQuery Mobile automatisk tilføjer til indholdselementet af et collapsible panel, når panelet er skjult (kollapset). Denne klasse kan bruges til at styre stilarter, der kun skal gælde, når indholdet er skjult.

Hvordan laver jeg et collapsible, der starter udvidet?

Du kan få et collapsible element til at starte udvidet ved at tilføje attributten data-collapsed="false" til containeren.

Kan jeg have flere collapsibles åbne samtidigt?

Ja, som standard kan flere individuelle collapsibles være åbne samtidigt. Hvis du ønsker, at kun ét skal være åbent ad gangen (en accordion-funktionalitet), skal du placere dem inden i en container med data-role="collapsible-set".

Hvad er forskellen på data-theme og data-content-theme?

data-theme anvendes på headeren af collapsible elementet og styrer dens udseende (farve, stil). data-content-theme anvendes på selve indholdssektionen og giver dig mulighed for at give indholdet en separat visuel stil, som kan skabe en klarere adskillelse eller forbindelse til headeren.

Konklusion

jQuery Mobiles Collapsible-widget er et fremragende værktøj til at forbedre brugeroplevelsen på mobile enheder ved at gøre indholdet mere håndterbart og pladsbesparende. Ved at mestre brugen af grundlæggende collapsibles, tilpasningsmuligheder, indlejrede strukturer og collapsible sæt, kan du skabe dynamiske og brugervenlige interfaces. Selvom widgeten er ved at blive udfaset, giver forståelsen af dens principper en solid baggrund for at arbejde med lignende komponenter i fremtidige webudviklingsprojekter.

Hvis du vil læse andre artikler, der ligner jQuery Mobile: Skab udvidelige indholdspaneler, kan du besøge kategorien Mobil.

Go up