Pomocou modálneho doplnku JavaScript od Bootstrapu pridajte na svoje stránky dialógové okná pre svetelné boxy, upozornenia používateľov alebo úplne vlastný obsah.
Ako to funguje
Skôr ako začnete s modálnym komponentom Bootstrap, prečítajte si nasledujúce informácie, pretože naše možnosti ponuky sa nedávno zmenili.
Modály sú vytvorené pomocou HTML, CSS a JavaScriptu. Sú umiestnené nad všetkým ostatným v dokumente a odstraňujú posúvanie z dokumentu <body>, aby sa namiesto toho posúval modálny obsah.
Kliknutím na modálne „pozadie“ sa modal automaticky zatvorí.
Bootstrap podporuje naraz iba jedno modálne okno. Vnorené modály nie sú podporované, pretože sa domnievame, že majú zlý dojem používateľa.
Modály používajú position: fixed, čo môže byť niekedy trochu špecifické pri jeho vykresľovaní. Vždy, keď je to možné, umiestnite svoj modálny kód HTML na najvyššiu úroveň, aby ste predišli potenciálnemu rušeniu z iných prvkov. Pri vnorení .modaldo iného pevného prvku pravdepodobne narazíte na problémy.
Vzhľadom na to, ako HTML5 definuje svoju sémantiku, atribút autofocusHTML nemá žiadny vplyv na modály Bootstrap. Ak chcete dosiahnuť rovnaký efekt, použite vlastný JavaScript:
Pokračujte v čítaní ukážok a pokynov na používanie.
Príklady
Modálne komponenty
Nižšie je uvedený statický modálny príklad (čo znamená jeho positiona displayboli prepísané). Zahrnuté sú modálna hlavička, modálne telo (povinné pre padding) a modálna päta (voliteľné). Žiadame, aby ste vždy, keď je to možné, zahrnuli modálne hlavičky s akciami odmietnutia alebo poskytli inú explicitnú akciu odmietnutia.
Modálny názov
Tu je modálny hlavný text.
Živá ukážka
Prepnite ukážku pracovného modu kliknutím na tlačidlo nižšie. Posunie sa nadol a bude miznúť z hornej časti stránky.
Modal title
Woohoo, you're reading this text in a modal!
Statické pozadie
Keď je pozadie nastavené na statické, modál sa nezatvorí, keď kliknete mimo neho. Kliknutím na tlačidlo nižšie to vyskúšate.
Modal title
I will not close if you click outside me. Don't even try to press escape key.
Posúvanie dlhého obsahu
Keď sú modály príliš dlhé pre zobrazovanú oblasť alebo zariadenie používateľa, posúvajú sa nezávisle od samotnej stránky. Vyskúšajte ukážku nižšie, aby ste videli, čo máme na mysli.
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.
Môžete tiež vytvoriť rolovací modal, ktorý umožňuje rolovanie modálneho tela pridaním .modal-dialog-scrollabledo .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.
Vertikálne vycentrované
Pridať .modal-dialog-centereddo .modal-dialog, aby sa modal zvislo vycentroval.
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.
Popisy a kontextové okná
Popisy nástrojov a kontextové okná možno podľa potreby umiestniť do modálov . Keď sú modály zatvorené, všetky popisy a kontextové okná v rámci sa tiež automaticky zatvoria.
Využite mriežkový systém Bootstrap v rámci modálu vnorením .container-fluidsa do .modal-body. Potom použite normálne triedy mriežkového systému ako kdekoľvek inde.
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
Rôzny modálny obsah
Máte veľa tlačidiel, ktoré spúšťajú rovnaký modál s mierne odlišným obsahom? Použite event.relatedTargeta HTML data-*atribúty (prípadne cez jQuery ) na zmenu obsahu modálu v závislosti od toho, na ktoré tlačidlo ste klikli.
Nižšie je živá ukážka, za ktorou nasleduje príklad HTML a JavaScript. Ďalšie informácie nájdete v dokumentoch k modálnym udalostiam , kde nájdete podrobnosti o relatedTarget.
New message
Zmeniť animáciu
Premenná $modal-fade-transformurčuje stav transformácie .modal-dialogpred modálnou fade-in animáciou, $modal-show-transformpremenná určuje transformáciu .modal-dialogna konci modálnej fade-in animácie.
Ak chcete napríklad animáciu priblíženia, môžete nastaviť $modal-fade-transform: scale(.8).
Odstrániť animáciu
V prípade modálov, ktoré sa jednoducho objavia, než aby sa zobrazovali, odstráňte .fadetriedu zo svojho modálneho označenia.
Dynamické výšky
Ak sa výška modálu zmení, keď je otvorený, mali by ste zavolať $('#myModal').modal('handleUpdate'), aby ste upravili polohu modálu v prípade, že sa objaví posuvník.
Prístupnosť
Nezabudnite pridať aria-labelledby="...", odkazujúc na modálny názov, do .modal. Okrem toho môžete zadať popis svojho modálneho dialógu aria-describedbypomocou .modal. Všimnite si, že ho nemusíte pridávať role="dialog", pretože ho už pridávame prostredníctvom JavaScriptu.
Modály majú tri voliteľné veľkosti dostupné prostredníctvom tried modifikátorov, ktoré sa umiestnia na .modal-dialog. Tieto veľkosti sa spúšťajú v určitých bodoch prerušenia, aby sa zabránilo vodorovným posúvačom na užších výrezoch.
Veľkosť
Trieda
Modálna maximálna šírka
Malý
.modal-sm
300px
Predvolené
žiadne
500px
Veľký
.modal-lg
800px
Extra veľké
.modal-xl
1140px
Náš predvolený modál bez triedy modifikátorov predstavuje modál „strednej“ veľkosti.
Extra large modal
...
Large modal
...
Small modal
...
Použitie
Modálny doplnok prepína váš skrytý obsah na požiadanie prostredníctvom atribútov údajov alebo JavaScriptu. Pridáva tiež .modal-openk <body>prepísaniu predvoleného správania rolovania a generuje oblasť .modal-backdropna kliknutie na zrušenie zobrazených modálov pri kliknutí mimo modálu.
Cez dátové atribúty
Aktivujte modál bez písania JavaScriptu. Nastavte data-toggle="modal"na prvku ovládača, ako je tlačidlo, spolu s data-target="#foo"alebo href="#foo"na zacielenie na konkrétny modál na prepínanie.
Cez JavaScript
Zavolajte modal s ID myModals jedným riadkom JavaScriptu:
možnosti
Možnosti môžu byť odovzdané prostredníctvom dátových atribútov alebo JavaScriptu. Pre atribúty údajov pripojte názov voľby k data-, ako v data-backdrop="".
názov
Typ
Predvolené
Popis
pozadie
boolean alebo reťazec'static'
pravda
Obsahuje prvok modálneho pozadia. Prípadne zadajte staticpozadie, ktoré nezatvorí modál po kliknutí.
klávesnica
boolovská hodnota
pravda
Zatvorí modal po stlačení klávesu Escape
zameranie
boolovská hodnota
pravda
Po inicializácii sa zameriava na modal.
šou
boolovská hodnota
pravda
Po inicializácii zobrazí modal.
Metódy
Asynchrónne metódy a prechody
Všetky metódy API sú asynchrónne a spúšťajú prechod . Vrátia sa k volajúcemu hneď po spustení prechodu, ale skôr, ako sa skončí . Okrem toho bude volanie metódy na prechodovom komponente ignorované .
Aktivuje váš obsah ako modálny. Prijíma voliteľné možnosti object.
.modal('toggle')
Manuálne prepína modal. Vráti sa k volajúcemu predtým, ako sa modal skutočne ukázal alebo skryl (tj predtým, ako nastane udalosť shown.bs.modalalebo ).hidden.bs.modal
.modal('show')
Manuálne otvorí modál. Vráti sa k volajúcemu skôr, ako sa modal skutočne ukázal (tj predtým, ako shown.bs.modalnastane udalosť).
.modal('hide')
Manuálne skryje modal. Vráti sa k volajúcemu skôr, ako bol modal skutočne skrytý (tj predtým, ako hidden.bs.modalnastane udalosť).
.modal('handleUpdate')
Ručne upravte polohu modálu, ak sa výška modálu zmení, keď je otvorený (tj v prípade, že sa objaví posuvník).
.modal('dispose')
Zničí modálny prvok prvku.
Diania
Modálna trieda Bootstrapu odhaľuje niekoľko udalostí na pripojenie k modálnej funkcii. Všetky modálne udalosti sa spúšťajú na samotnom modale (tj na <div class="modal">).
Typ udalosti
Popis
show.bs.modal
Táto udalosť sa spustí okamžite pri showvolaní metódy inštancie. Ak je to spôsobené kliknutím, kliknutý prvok je dostupný ako relatedTargetvlastnosť udalosti.
zobrazené.bs.modálne
Táto udalosť sa spustí, keď bude modal viditeľný pre používateľa (bude čakať na dokončenie prechodov CSS). Ak je to spôsobené kliknutím, kliknutý prvok je dostupný ako relatedTargetvlastnosť udalosti.
hide.bs.modal
Táto udalosť sa spustí okamžite po hidezavolaní metódy inštancie.
skrytý.bs.modálny
Táto udalosť sa spustí, keď sa dokončí skrytie modálu pred používateľom (bude čakať na dokončenie prechodov CSS).
hidePrevented.bs.modal
Táto udalosť sa spustí, keď je zobrazený modál, jeho pozadie statica kliknutie mimo modálu alebo stlačenie klávesu Escape s možnosťou klávesnice alebo data-keyboardnastavenou na false.