Använd Bootstraps JavaScript modala plugin för att lägga till dialogrutor på din webbplats för ljusboxar, användarmeddelanden eller helt anpassat innehåll.
Hur det fungerar
Innan du börjar med Bootstraps modala komponent, se till att läsa följande eftersom våra menyalternativ nyligen har ändrats.
Modalerna är byggda med HTML, CSS och JavaScript. De är placerade över allt annat i dokumentet och tar bort rullningen från <body>så att modalt innehåll rullar istället.
Genom att klicka på den modala "bakgrunden" stängs modalen automatiskt.
Bootstrap stöder bara ett modalt fönster åt gången. Kapslade modaler stöds inte eftersom vi anser att de är dåliga användarupplevelser.
Modaler använder position: fixed, som ibland kan vara lite speciell när det gäller dess rendering. När det är möjligt, placera din modala HTML på en toppnivå för att undvika potentiell störning från andra element. Du kommer sannolikt att stöta på problem när du kapslar en .modali ett annat fast element.
Återigen, på grund av position: fixed, finns det några varningar med att använda modaler på mobila enheter. Se våra webbläsarsupportdokument för detaljer.
På grund av hur HTML5 definierar sin semantik har HTML autofocus-attributet ingen effekt i Bootstrap-modaler. För att uppnå samma effekt, använd lite anpassat JavaScript:
Fortsätt läsa för demos och användningsriktlinjer.
Exempel
Modala komponenter
Nedan är ett statiskt modalt exempel (vilket betyder att dess positionoch displayhar åsidosatts). Inkluderat är modal sidhuvud, modal body (krävs för padding) och modal sidfot (valfritt). Vi ber dig att inkludera modala rubriker med avvisningsåtgärder när det är möjligt, eller tillhandahålla en annan uttrycklig avvisningsåtgärd.
Modal titel
Modal brödtext går här.
Live-demo
Växla en fungerande modal demo genom att klicka på knappen nedan. Den kommer att glida ned och tona in från toppen av sidan.
Modal title
Woohoo, you're reading this text in a modal!
Statisk bakgrund
När bakgrunden är inställd på statisk stängs inte modalen när du klickar utanför den. Klicka på knappen nedan för att prova.
Modal title
I will not close if you click outside me. Don't even try to press escape key.
Rulla långt innehåll
När modalerna blir för långa för användarens viewport eller enhet rullar de oberoende av själva sidan. Prova demon nedan för att se vad vi menar.
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 också skapa en rullningsbar modal som tillåter rullning av modalkroppen genom att lägga .modal-dialog-scrollabletill i .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 centrerad
Lägg .modal-dialog-centeredtill .modal-dialogför att vertikalt centrera modalen.
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.
Verktygstips och popovers
Verktygstips och popovers kan placeras inom modaler efter behov. När modalerna stängs stängs även alla verktygstips och popovers inom automatiskt.
Använd Bootstrap-rutnätssystemet inom en modal genom att kapsla .container-fluidi .modal-body. Använd sedan de normala rutsystemklasserna som du skulle någon annanstans.
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
Varierande modalt innehåll
Har du ett gäng knappar som alla triggar samma modal med lite olika innehåll? Använd event.relatedTargetoch HTML- data-*attribut (eventuellt via jQuery ) för att variera innehållet i modalen beroende på vilken knapp som klickades på.
Nedan är en livedemo följt av exempel HTML och JavaScript. För mer information, läs dokumenten för modala händelser för detaljer om relatedTarget.
New message
Ändra animation
Variabeln $modal-fade-transformbestämmer transformeringstillståndet .modal-dialogföre den modala fade-in-animeringen, $modal-show-transformvariabeln bestämmer transformationen av .modal-dialogi slutet av den modala fade-in-animeringen.
Om du till exempel vill ha en zoom-in-animation kan du ställa in $modal-fade-transform: scale(.8).
Ta bort animation
För modaler som helt enkelt visas istället för att tona in för att visa, ta bort .fadeklassen från din modala uppmärkning.
Dynamiska höjder
Om höjden på en modal ändras medan den är öppen, bör du ringa $('#myModal').modal('handleUpdate')för att justera modalens position om en rullningslist visas.
Tillgänglighet
Var noga med att lägga till aria-labelledby="...", med hänvisning till den modala titeln, till .modal. Dessutom kan du ge en beskrivning av din modala dialogruta med aria-describedbypå .modal. Observera att du inte behöver lägga till role="dialog"eftersom vi redan lägger till det via JavaScript.
Bädda in YouTube-videor
Att bädda in YouTube-videor i modals kräver ytterligare JavaScript som inte finns i Bootstrap för att automatiskt stoppa uppspelningen och mer. Se detta användbara Stack Overflow-inlägg för mer information.
Valfria storlekar
Modaler har tre valfria storlekar, tillgängliga via modifieringsklasser för att placeras på en .modal-dialog. Dessa storlekar slår in vid vissa brytpunkter för att undvika horisontella rullningslister på smalare vyportar.
Storlek
Klass
Modal maxbredd
Små
.modal-sm
300px
Standard
Ingen
500px
Stor
.modal-lg
800px
Extra stor
.modal-xl
1140px
Vår standardmodal utan modifieringsklass utgör "medelstor" modal.
Extra large modal
...
Large modal
...
Small modal
...
Användande
Modal plugin växlar ditt dolda innehåll på begäran, via dataattribut eller JavaScript. Det lägger också .modal-opentill <body>att åsidosätta standardrullningsbeteendet och genererar ett .modal-backdropför att tillhandahålla ett klickområde för att avvisa visade modaler när du klickar utanför modalen.
Via dataattribut
Aktivera en modal utan att skriva JavaScript. Ställ in data-toggle="modal"på ett kontrollelement, som en knapp, tillsammans med en data-target="#foo"eller href="#foo"för att rikta in en specifik modal att växla.
Via JavaScript
Anropa en modal med id myModalmed en enda rad JavaScript:
alternativ
Alternativ kan skickas via dataattribut eller JavaScript. För dataattribut, lägg till alternativnamnet till data-, som i data-backdrop="".
namn
Typ
Standard
Beskrivning
bakgrund
boolesk eller strängen'static'
Sann
Inkluderar ett modal-bakgrundselement. Alternativt, ange staticför en bakgrund som inte stänger modalen vid klick.
tangentbord
booleskt
Sann
Stänger modalen när escape-tangenten trycks ned
fokus
booleskt
Sann
Sätter fokus på modalen när den initieras.
show
booleskt
Sann
Visar modalen när den initieras.
Metoder
Asynkrona metoder och övergångar
Alla API - metoder är asynkrona och startar en övergång . De återvänder till den som ringer så snart övergången har påbörjats men innan den slutar . Dessutom kommer ett metodanrop på en övergångskomponent att ignoreras .
Aktiverar ditt innehåll som en modal. Accepterar ett valfritt alternativ object.
.modal('toggle')
Växlar manuellt en modal. Återgår till den som ringer innan modalen faktiskt har visats eller dolt (dvs innan händelsen shown.bs.modaleller hidden.bs.modalinträffar).
.modal('show')
Öppnar en modal manuellt. Återgår till den som ringer innan modalen faktiskt har visats (dvs innan shown.bs.modalhändelsen inträffar).
.modal('hide')
Döljer en modal manuellt. Återgår till den som ringer innan modalen faktiskt har dolts (dvs innan hidden.bs.modalhändelsen inträffar).
.modal('handleUpdate')
Justera manuellt modalens position om höjden på en modal ändras medan den är öppen (dvs. om en rullningslist visas).
.modal('dispose')
Förstör ett elements modal.
evenemang
Bootstraps modalklass avslöjar några händelser för att koppla in modal funktionalitet. Alla modala händelser avfyras mot själva modalen (dvs. på <div class="modal">).
Event typ
Beskrivning
show.bs.modal
Denna händelse aktiveras omedelbart när showinstansmetoden anropas. Om det orsakas av ett klick är det klickade elementet tillgängligt som relatedTargetegenskapen för händelsen.
visad.bs.modal
Denna händelse utlöses när modalen har gjorts synlig för användaren (väntar på att CSS-övergångar ska slutföras). Om det orsakas av ett klick är det klickade elementet tillgängligt som relatedTargetegenskapen för händelsen.
hide.bs.modal
Denna händelse aktiveras omedelbart när hideinstansmetoden har anropats.
hidden.bs.modal
Denna händelse utlöses när modalen har döljts för användaren (väntar på att CSS-övergångar ska slutföras).
hidePrevented.bs.modal
Denna händelse utlöses när modalen visas, dess bakgrund är staticoch ett klick utanför modalen eller en escape-knapptryckning utförs med tangentbordsalternativet eller data-keyboardinställt på false.