Gebruik de modale JavaScript-plug-in van Bootstrap om dialoogvensters aan uw site toe te voegen voor lightboxes, gebruikersmeldingen of volledig aangepaste inhoud.
Hoe het werkt
Voordat u aan de slag gaat met de modale component van Bootstrap, moet u het volgende lezen, aangezien onze menu-opties onlangs zijn gewijzigd.
Modals zijn gebouwd met HTML, CSS en JavaScript. Ze worden over al het andere in het document gepositioneerd en verwijderen scroll uit de <body>zodat in plaats daarvan modale inhoud schuift.
Als u op de modale "achtergrond" klikt, wordt de modal automatisch gesloten.
Bootstrap ondersteunt slechts één modaal venster tegelijk. Geneste modaliteiten worden niet ondersteund omdat we denken dat dit een slechte gebruikerservaring is.
Modals gebruiken position: fixed, wat soms een beetje bijzonder kan zijn over de weergave ervan. Plaats waar mogelijk uw modale HTML op een positie op het hoogste niveau om mogelijke interferentie van andere elementen te voorkomen. U zult waarschijnlijk problemen tegenkomen bij het nesten van een .modalin een ander vast element.
Nogmaals, vanwege position: fixed, zijn er enkele kanttekeningen bij het gebruik van modals op mobiele apparaten. Zie onze browserondersteuningsdocumenten voor details.
Vanwege de manier waarop HTML5 de semantiek definieert, heeft het autofocusHTML-attribuut geen effect in Bootstrap-modaliteiten. Gebruik wat aangepast JavaScript om hetzelfde effect te bereiken:
Hieronder staat een statisch modaal voorbeeld (wat betekent dat het is positionen displayis overschreven). Inbegrepen zijn de modale koptekst, modale hoofdtekst (vereist voor padding) en modale voettekst (optioneel). We vragen u waar mogelijk modale koppen met afwijzingsacties op te nemen, of een andere expliciete afwijzingsactie op te geven.
modale titel
De modale hoofdtekst komt hier.
Live demonstratie
Schakel een werkende modale demo in door op de onderstaande knop te klikken. Het schuift naar beneden en verdwijnt in beeld vanaf de bovenkant van de pagina.
modale titel
Woohoo, je leest deze tekst in een modaal!
Statische achtergrond
Als achtergrond is ingesteld op statisch, wordt de modal niet gesloten als er buiten wordt geklikt. Klik op de onderstaande knop om het te proberen.
modale titel
Ik sluit niet als je buiten mij klikt. Probeer niet eens op de escape-toets te drukken.
Door lange inhoud scrollen
Wanneer modals te lang worden voor de viewport of het apparaat van de gebruiker, scrollen ze onafhankelijk van de pagina zelf. Probeer de demo hieronder om te zien wat we bedoelen.
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.
U kunt ook een schuifbare modal maken waarmee u door de modale body kunt scrollen door toe te voegen .modal-dialog-scrollableaan .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.
Verticaal gecentreerd
Toevoegen .modal-dialog-centeredaan .modal-dialogom de modal verticaal te centreren.
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.
Knopinfo en popovers
Tooltips en popovers kunnen indien nodig in modals worden geplaatst. Wanneer modals zijn gesloten, worden alle tooltips en popovers binnen ook automatisch gesloten.
Gebruik het Bootstrap-rastersysteem binnen een modaal door te nesten .container-fluidin het .modal-body. Gebruik dan de normale rastersysteemklassen zoals u dat ergens anders zou doen.
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
Variërende modale inhoud
Heb je een aantal knoppen die allemaal hetzelfde modaal activeren met een iets andere inhoud? Gebruik event.relatedTargeten HTML- data-*attributen (mogelijk via jQuery ) om de inhoud van de modal te variëren, afhankelijk van op welke knop is geklikt.
Hieronder is een live demo gevolgd door voorbeeld HTML en JavaScript. Lees voor meer informatie de documenten over modale gebeurtenissen voor meer informatie over relatedTarget.
New message
Animatie wijzigen
De $modal-fade-transformvariabele bepaalt de transformatiestatus van .modal-dialogvóór de modale fade-in-animatie, de $modal-show-transformvariabele bepaalt de transformatie van .modal-dialogaan het einde van de modale fade-in-animatie.
Als u bijvoorbeeld een inzoomanimatie wilt, kunt u instellen $modal-fade-transform: scale(.8).
Animatie verwijderen
Voor modals die gewoon verschijnen in plaats van vervagen om te bekijken, verwijdert u de .fadeklasse uit uw modale opmaak.
Dynamische hoogten
Als de hoogte van een modal verandert terwijl deze open is, moet u bellen $('#myModal').modal('handleUpdate')om de positie van de modal opnieuw aan te passen voor het geval er een schuifbalk verschijnt.
Toegankelijkheid
Zorg ervoor dat u role="dialog"en toevoegt aria-labelledby="...", verwijzend naar de modale titel, naar .modalen role="document"naar de .modal-dialogzelf. Bovendien kunt u een beschrijving van uw modale dialoog geven met aria-describedbyop .modal.
YouTube-video's insluiten
Voor het insluiten van YouTube-video's in modals is extra JavaScript vereist dat niet in Bootstrap zit om het afspelen automatisch te stoppen en meer. Zie deze nuttige Stack Overflow-post voor meer informatie.
Optionele maten
Modals hebben drie optionele maten, beschikbaar via modificatieklassen die op een .modal-dialog. Deze formaten treden in werking bij bepaalde breekpunten om horizontale schuifbalken op smallere kijkvensters te vermijden.
Maat
Klas
Modale maximale breedte
Klein
.modal-sm
300px
Standaard
Geen
500px
Groot
.modal-lg
800px
Extra groot
.modal-xl
1140px
Onze standaard modale klasse zonder modificatie vormt de "middelgrote" modal.
Extra large modal
...
Large modal
...
Small modal
...
Gebruik
De modale plug-in schakelt uw verborgen inhoud op aanvraag in, via gegevensattributen of JavaScript. Het voegt ook toe .modal-openaan het <body>standaard scrollgedrag om te negeren en genereert een .modal-backdropom een klikgebied te bieden voor het negeren van getoonde modals wanneer buiten het modale geklikt wordt.
Via gegevensattributen
Activeer een modaal zonder JavaScript te schrijven. Stel data-toggle="modal"in op een controller-element, zoals een knop, samen met een data-target="#foo"of href="#foo"om een specifieke modaal te targeten om te schakelen.
Via JavaScript
Roep een modaal met id myModalaan met een enkele regel JavaScript:
Opties
Opties kunnen worden doorgegeven via data-attributen of JavaScript. Voeg voor gegevensattributen de optienaam toe aan data-, zoals in data-backdrop="".
Naam
Type
Standaard
Beschrijving
achtergrond
boolean of de string'static'
WAAR
Bevat een modaal-achtergrondelement. U kunt ook een achtergrond specificeren staticdie de modal niet sluit bij klikken of bij het indrukken van een Escape-toets.
toetsenbord
booleaans
WAAR
Sluit de modal wanneer de escape-toets wordt ingedrukt
focus
booleaans
WAAR
Legt de focus op het modale wanneer geïnitialiseerd.
show
booleaans
WAAR
Toont de modal wanneer geïnitialiseerd.
Methoden:
Asynchrone methoden en overgangen
Alle API-methoden zijn asynchroon en starten een transitie . Ze keren terug naar de beller zodra de overgang is gestart maar voordat deze eindigt . Bovendien wordt een methodeaanroep op een overgangscomponent genegeerd .
Activeert uw inhoud als modaal. Accepteert een optionele optie object.
.modal('toggle')
Schakelt handmatig een modaal in. Keert terug naar de beller voordat de modal daadwerkelijk is getoond of verborgen (dwz voordat de shown.bs.modalof hidden.bs.modal-gebeurtenis plaatsvindt).
.modal('show')
Opent handmatig een modaal. Keert terug naar de beller voordat de modal daadwerkelijk is getoond (dwz voordat de shown.bs.modalgebeurtenis plaatsvindt).
.modal('hide')
Verbergt handmatig een modaal. Keert terug naar de beller voordat de modal daadwerkelijk is verborgen (dwz voordat de hidden.bs.modalgebeurtenis plaatsvindt).
.modal('handleUpdate')
Pas de positie van de modal handmatig aan als de hoogte van een modal verandert terwijl deze open is (dwz als er een schuifbalk verschijnt).
.modal('dispose')
Vernietigt de modal van een element.
Evenementen
De modale klasse van Bootstrap onthult een paar gebeurtenissen voor het aansluiten op modale functionaliteit. Alle modale gebeurtenissen worden afgevuurd op de modale zelf (dwz op de <div class="modal">).
Evenementtype
Beschrijving
show.bs.modal
Deze gebeurtenis wordt onmiddellijk geactiveerd wanneer de showinstantiemethode wordt aangeroepen. Indien veroorzaakt door een klik, is het aangeklikte element beschikbaar als de relatedTargeteigenschap van de gebeurtenis.
getoond.bs.modal
Deze gebeurtenis wordt geactiveerd wanneer de modal zichtbaar is gemaakt voor de gebruiker (wacht tot de CSS-overgangen zijn voltooid). Indien veroorzaakt door een klik, is het aangeklikte element beschikbaar als de relatedTargeteigenschap van de gebeurtenis.
verberg.bs.modal
Deze gebeurtenis wordt onmiddellijk geactiveerd wanneer de hideinstantiemethode is aangeroepen.
verborgen.bs.modal
Deze gebeurtenis wordt geactiveerd wanneer de modal klaar is met verborgen zijn voor de gebruiker (wacht tot de CSS-overgangen zijn voltooid).
hidePrevented.bs.modal
Deze gebeurtenis wordt geactiveerd wanneer de modal wordt weergegeven, de achtergrond is staticen een klik buiten de modal of een escape-toets wordt ingedrukt.