Brug Bootstraps JavaScript modal plugin til at tilføje dialogbokse til dit websted til lysbokse, brugermeddelelser eller helt tilpasset indhold.
Hvordan det virker
Før du går i gang med Bootstraps modale komponent, skal du sørge for at læse følgende, da vores menuindstillinger for nylig er ændret.
Modaler er bygget med HTML, CSS og JavaScript. De er placeret over alt andet i dokumentet og fjerner rulle fra dokumentet, <body>så modalt indhold ruller i stedet.
Ved at klikke på den modale "baggrund" lukkes modalen automatisk.
Bootstrap understøtter kun ét modalt vindue ad gangen. Indlejrede modaler understøttes ikke, da vi mener, at de er dårlige brugeroplevelser.
Modaler bruger position: fixed, som nogle gange kan være lidt speciel med hensyn til gengivelsen. Når det er muligt, skal du placere din modale HTML på øverste niveau for at undgå potentiel interferens fra andre elementer. Du vil sandsynligvis løbe ind i problemer, når du indlejrer en .modali et andet fast element.
Endnu en gang, grundet position: fixed, er der nogle forbehold med at bruge modaler på mobile enheder. Se vores browsersupportdokumenter for detaljer.
På grund af hvordan HTML5 definerer sin semantik, har autofocusHTML-attributten ingen effekt i Bootstrap-modaler. For at opnå den samme effekt skal du bruge noget tilpasset JavaScript:
Fortsæt med at læse for demoer og retningslinjer for brug.
Eksempler
Modale komponenter
Nedenfor er et statisk modalt eksempel (hvilket betyder, at det er positionog displayer blevet tilsidesat). Inkluderet er modal sidehoved, modal tekst (påkrævet for padding) og modal sidefod (valgfrit). Vi beder dig om at inkludere modale overskrifter med afvisningshandlinger, når det er muligt, eller angive en anden eksplicit afvisningshandling.
Modal titel
Modal brødtekst går her.
Live demo
Skift en fungerende modal demo ved at klikke på knappen nedenfor. Det vil glide ned og fade ind fra toppen af siden.
Modal titel
Woohoo, du læser denne tekst i en modal!
Statisk baggrund
Når baggrund er indstillet til statisk, lukker modalen ikke, når der klikkes uden for den. Klik på knappen nedenfor for at prøve det.
Modal titel
Jeg lukker ikke, hvis du klikker uden for mig. Prøv ikke engang at trykke på escape-tasten.
Rulle langt indhold
Når modalerne bliver for lange til brugerens viewport eller enhed, ruller de uafhængigt af selve siden. Prøv demoen nedenfor for at se, hvad vi mener.
Modal title
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Du kan også oprette en scrollbar modal, der tillader scroll modal body ved at tilføje .modal-dialog-scrollabletil .modal-dialog.
Modal title
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Lodret centreret
Tilføj .modal-dialog-centeredtil .modal-dialogfor at centrere modalen lodret.
Modal title
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Modal title
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Værktøjstip og popovers
Værktøjstip og popovers kan placeres i modaler efter behov. Når modalerne er lukket, afvises alle værktøjstip og popovers indeni også automatisk.
Udnyt Bootstrap-gittersystemet i en modal ved at indlejre .container-fluidi .modal-body. Brug derefter de normale netsystemklasser, som du ville andre steder.
Grids in modals
.col-md-4
.col-md-4 .ml-auto
.col-md-3 .ml-auto
.col-md-2 .ml-auto
.col-md-6 .ml-auto
Level 1: .col-sm-9
Level 2: .col-8 .col-sm-6
Level 2: .col-4 .col-sm-6
Varierende modalt indhold
Har du en masse knapper, der alle udløser den samme modal med lidt forskelligt indhold? Brug event.relatedTargetog HTML- data-*attributter (evt. via jQuery ) til at variere indholdet af modalen afhængigt af hvilken knap der blev klikket på.
Nedenfor er en live demo efterfulgt af eksempel HTML og JavaScript. For mere information, læs dokumentet om modale begivenheder for detaljer om relatedTarget.
New message
Skift animation
$modal-fade-transformVariablen bestemmer transformationstilstanden før den .modal-dialogmodale fade-in-animation, $modal-show-transformvariablen bestemmer transformationen af .modal-dialogi slutningen af den modale fade-in-animation.
Ønsker du f.eks. en zoom-ind-animation, kan du indstille $modal-fade-transform: scale(.8).
Fjern animation
For modaler, der blot vises i stedet for at falme ind for at se, skal du fjerne .fadeklassen fra din modale markup.
Dynamiske højder
Hvis højden på en modal ændres, mens den er åben, skal du ringe $('#myModal').modal('handleUpdate')for at justere modalens position, hvis der vises en rullepanel.
Tilgængelighed
Sørg for at tilføje role="dialog"og aria-labelledby="...", med henvisning til den modale titel, til .modal, og role="document"til sig .modal-dialogselv. Derudover kan du give en beskrivelse af din modale dialog med aria-describedbypå .modal.
Indlejring af YouTube-videoer
Indlejring af YouTube-videoer i modaler kræver yderligere JavaScript, der ikke er i Bootstrap for automatisk at stoppe afspilning og mere. Se dette nyttige Stack Overflow-indlæg for mere information.
Valgfri størrelser
Modaler har tre valgfrie størrelser, tilgængelige via modifikationsklasser til at blive placeret på en .modal-dialog. Disse størrelser slår ind ved bestemte brudpunkter for at undgå vandrette rullebjælker på smallere visningsporte.
Størrelse
Klasse
Modal max-bredde
Lille
.modal-sm
300px
Standard
Ingen
500px
Stor
.modal-lg
800px
Ekstra stor
.modal-xl
1140px
Vores standard modal uden modifikator klasse udgør "medium" størrelse modal.
Extra large modal
...
Large modal
...
Small modal
...
Brug
Det modale plugin skifter dit skjulte indhold efter behov via dataattributter eller JavaScript. Det tilføjer også .modal-opentil <body>at tilsidesætte standard rulleadfærd og genererer et .modal-backdropklikområde til at afvise viste modaler, når der klikkes uden for modalen.
Via dataattributter
Aktiver en modal uden at skrive JavaScript. Indstil data-toggle="modal"på et controller-element, som en knap, sammen med et data-target="#foo"eller href="#foo"for at målrette en bestemt modal til at skifte.
Via JavaScript
Kald en modal med id myModalmed en enkelt linje JavaScript:
Muligheder
Indstillinger kan videregives via dataattributter eller JavaScript. For dataattributter skal du tilføje indstillingsnavnet til data-, som i data-backdrop="".
Navn
Type
Standard
Beskrivelse
baggrund
boolesk eller strengen'static'
rigtigt
Indeholder et modal-baggrundselement. Alternativt kan du angive staticen baggrund, som ikke lukker modalen ved klik eller ved escape-tastetryk.
tastatur
boolesk
rigtigt
Lukker modalen, når der trykkes på escape-tasten
fokus
boolesk
rigtigt
Sætter fokus på modalen, når den initialiseres.
at vise
boolesk
rigtigt
Viser modal ved initialisering.
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 .
Aktiverer dit indhold som en modal. Accepterer en valgfri indstilling object.
.modal('toggle')
Skifter manuelt en modal. Vender tilbage til den, der ringer, før modalen faktisk er blevet vist eller skjult (dvs. før hændelsen shown.bs.modaleller hidden.bs.modalindtræffer).
.modal('show')
Åbner manuelt en modal. Vender tilbage til den, der ringer, før modalen faktisk er blevet vist (dvs. før shown.bs.modalhændelsen indtræffer).
.modal('hide')
Skjuler manuelt en modal. Vender tilbage til den, der ringer, før modalen rent faktisk er blevet skjult (dvs. før hidden.bs.modalhændelsen indtræffer).
.modal('handleUpdate')
Juster manuelt modalens position, hvis højden af en modal ændres, mens den er åben (dvs. hvis der vises en rullebjælke).
.modal('dispose')
Ødelægger et elements modal.
Begivenheder
Bootstraps modal-klasse afslører nogle få hændelser for tilslutning til modal funktionalitet. Alle modale hændelser skydes mod selve modalen (dvs. på <div class="modal">).
Begivenhedstype
Beskrivelse
show.bs.modal
Denne hændelse udløses med det samme, når showinstansmetoden kaldes. Hvis det er forårsaget af et klik, er det klikkede element tilgængeligt som relatedTargethændelsens egenskab.
vist.bs.modal
Denne hændelse udløses, når modalen er gjort synlig for brugeren (vil vente på, at CSS-overgange er fuldført). Hvis det er forårsaget af et klik, er det klikkede element tilgængeligt som relatedTargethændelsens egenskab.
hide.bs.modal
Denne hændelse udløses straks, når hideinstansmetoden er blevet kaldt.
skjult.bs.modal
Denne hændelse udløses, når modalen er færdig med at blive skjult for brugeren (vil vente på, at CSS-overgange er fuldført).
hidePrevented.bs.modal
Denne hændelse udløses, når modalen vises, dens baggrund er, staticog der udføres et klik uden for modalen eller et escape-tastetryk.