Bruk Bootstraps JavaScript modal-plugin for å legge til dialogbokser på nettstedet ditt for lysbokser, brukervarsler eller helt tilpasset innhold.
Hvordan det fungerer
Før du begynner med Bootstraps modale komponent, sørg for å lese følgende siden menyalternativene våre nylig har endret seg.
Modaler er bygget med HTML, CSS og JavaScript. De er plassert over alt annet i dokumentet og fjerner rulling fra <body>slik at modalt innhold ruller i stedet.
Ved å klikke på det modale "bakteppet" lukkes modalen automatisk.
Bootstrap støtter bare ett modalt vindu om gangen. Nestede modaler støttes ikke da vi mener de er dårlige brukeropplevelser.
Modaler bruker position: fixed, som noen ganger kan være litt spesielt med tanke på gjengivelsen. Når det er mulig, plasser din modale HTML på toppnivå for å unngå potensiell interferens fra andre elementer. Du vil sannsynligvis støte på problemer når du legger et .modali et annet fast element.
Nok en gang, på grunn av position: fixed, er det noen forbehold med bruk av modaler på mobile enheter. Se våre nettleserstøttedokumenter for detaljer.
På grunn av hvordan HTML5 definerer sin semantikk, har autofocusHTML-attributtet ingen effekt i Bootstrap-modaler. For å oppnå samme effekt, bruk litt tilpasset JavaScript:
Fortsett å lese for demoer og retningslinjer for bruk.
Eksempler
Modale komponenter
Nedenfor er et statisk modalt eksempel (som betyr at det er positionog displayhar blitt overstyrt). Inkludert er modal topptekst, modal hovedtekst (påkrevd for padding) og modal bunntekst (valgfritt). Vi ber om at du inkluderer modale overskrifter med avvisningshandlinger når det er mulig, eller oppgir en annen eksplisitt avvisningshandling.
Modal tittel
Modal brødtekst går her.
Live demo
Bytt en fungerende modal demo ved å klikke på knappen nedenfor. Den vil gli ned og tone inn fra toppen av siden.
Modal tittel
Woohoo, du leser denne teksten i en modal!
Statisk bakteppe
Når bakteppet er satt til statisk, lukkes ikke modalen når du klikker utenfor den. Klikk på knappen nedenfor for å prøve det.
Modal tittel
Jeg vil ikke lukke hvis du klikker utenfor meg. Ikke engang prøv å trykke escape-tasten.
Ruller langt innhold
Når modaler blir for lange for brukerens visningsport eller enhet, ruller de uavhengig av selve siden. Prøv demoen nedenfor for å se hva 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å lage en rullbar modal som gjør det mulig å rulle den modale kroppen ved å legge .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.
Vertikalt sentrert
Legg .modal-dialog-centeredtil .modal-dialogfor å sentrere modalen vertikalt.
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.
Verktøytips og popovers
Verktøytips og popovers kan plasseres i modaler etter behov. Når modaler er lukket, blir alle verktøytips og popovers innenfor også automatisk avvist.
Bruk Bootstrap-rutenettsystemet i en modal ved å hekke .container-fluidi .modal-body. Bruk deretter de vanlige rutenettsystemklassene 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 innhold
Har du en haug med knapper som alle utløser samme modal med litt forskjellig innhold? Bruk event.relatedTargetog HTML - data-*attributter (eventuelt via jQuery ) for å variere innholdet i modalen avhengig av hvilken knapp som ble klikket på.
Nedenfor er en live demo etterfulgt av eksempel HTML og JavaScript. For mer informasjon, les dokumentene for modale hendelser for detaljer om relatedTarget.
New message
Endre animasjon
$modal-fade-transformVariabelen bestemmer transformasjonstilstanden før den .modal-dialogmodale inntoningsanimasjonen, $modal-show-transformvariabelen bestemmer transformasjonen av .modal-dialogpå slutten av den modale inntoningsanimasjonen.
Ønsker du for eksempel en zoom-inn-animasjon, kan du stille inn $modal-fade-transform: scale(.8).
Fjern animasjon
For modaler som ganske enkelt vises i stedet for å fortone seg, fjern .fadeklassen fra din modale markering.
Dynamiske høyder
Hvis høyden på en modal endres mens den er åpen, bør du ringe $('#myModal').modal('handleUpdate')for å justere modalens posisjon i tilfelle en rullefelt vises.
tilgjengelighet
Sørg for å legge til role="dialog"og aria-labelledby="...", med referanse til den modale tittelen, til .modal, og role="document"til seg .modal-dialogselv. I tillegg kan du gi en beskrivelse av din modale dialog med aria-describedbypå .modal.
Innbygging av YouTube-videoer
Innbygging av YouTube-videoer i modaler krever ekstra JavaScript som ikke er i Bootstrap for automatisk å stoppe avspillingen og mer. Se dette nyttige Stack Overflow-innlegget for mer informasjon.
Valgfrie størrelser
Modaler har tre valgfrie størrelser, tilgjengelige via modifikasjonsklasser for å plasseres på en .modal-dialog. Disse størrelsene slår inn ved visse bruddpunkter for å unngå horisontale rullefelt på smalere visningsporter.
Størrelse
Klasse
Modal maks-bredde
Liten
.modal-sm
300px
Misligholde
Ingen
500px
Stor
.modal-lg
800px
Ekstra stor
.modal-xl
1140px
Vår standard modal uten modifiseringsklasse utgjør "middels" størrelse modal.
Extra large modal
...
Large modal
...
Liten modal
...
Bruk
Modal-pluginen veksler mellom det skjulte innholdet ditt på forespørsel, via dataattributter eller JavaScript. Den legger også .modal-opentil for <body>å overstyre standard rulleadferd og genererer et .modal-backdropklikkområde for å avvise viste modaler når du klikker utenfor modalen.
Via dataattributter
Aktiver en modal uten å skrive JavaScript. Sett data-toggle="modal"på et kontrollerelement, som en knapp, sammen med en data-target="#foo"eller href="#foo"for å målrette en bestemt modal for å veksle.
Via JavaScript
Ring en modal med id myModalmed en enkelt linje med JavaScript:
Alternativer
Alternativer kan sendes via dataattributter eller JavaScript. For dataattributter, legg til alternativnavnet til data-, som i data-backdrop="".
Navn
Type
Misligholde
Beskrivelse
bakteppe
boolsk eller strengen'static'
ekte
Inkluderer et modalt bakteppeelement. Alternativt, spesifiser staticfor et bakteppe som ikke lukker modalen ved klikk eller ved escape-tastetrykk.
tastatur
boolsk
ekte
Lukker modalen når escape-tasten trykkes
fokus
boolsk
ekte
Setter fokus på modalen når den initialiseres.
forestilling
boolsk
ekte
Viser modalen når initialisert.
Metoder
Asynkrone metoder og overganger
Alle API-metoder er asynkrone og starter en overgang . De går tilbake til den som ringer så snart overgangen er startet, men før den avsluttes . I tillegg vil et metodekall på en overgangskomponent bli ignorert .
Aktiverer innholdet ditt som en modal. Godtar et valgfritt alternativ object.
.modal('toggle')
Bytter en modal manuelt. Går tilbake til den som ringer før modalen faktisk har blitt vist eller skjult (dvs. før hendelsen shown.bs.modaleller hidden.bs.modalinntreffer).
.modal('show')
Åpner en modal manuelt. Går tilbake til den som ringer før modalen faktisk har blitt vist (dvs. før shown.bs.modalhendelsen inntreffer).
.modal('hide')
Skjuler en modal manuelt. Går tilbake til den som ringer før modalen faktisk har blitt skjult (dvs. før hidden.bs.modalhendelsen inntreffer).
.modal('handleUpdate')
Juster modalens posisjon manuelt hvis høyden på en modal endres mens den er åpen (dvs. i tilfelle en rullefelt vises).
.modal('dispose')
Ødelegger et elements modal.
arrangementer
Bootstraps modalklasse avslører noen få hendelser for å koble til modal funksjonalitet. Alle modale hendelser skytes mot selve modalen (dvs. på <div class="modal">).
Hendelsestype
Beskrivelse
show.bs.modal
Denne hendelsen utløses umiddelbart når showinstansmetoden kalles. Hvis det er forårsaket av et klikk, er det klikkede elementet tilgjengelig som relatedTargetegenskapen til hendelsen.
vist.bs.modal
Denne hendelsen utløses når modalen er gjort synlig for brukeren (vil vente til CSS-overganger er fullført). Hvis det er forårsaket av et klikk, er det klikkede elementet tilgjengelig som relatedTargetegenskapen til hendelsen.
hide.bs.modal
Denne hendelsen utløses umiddelbart når hideinstansmetoden er kalt.
skjult.bs.modal
Denne hendelsen utløses når modalen er ferdig skjult for brukeren (vil vente på at CSS-overganger er fullført).
hidePrevented.bs.modal
Denne hendelsen utløses når modalen vises, dens bakteppe er staticog et klikk utenfor modalen eller et escape-tasttrykk utføres.