Koristite Bootstrap-ov JavaScript modalni dodatak za dodavanje dijaloga na svoju web stranicu za okvire za pregled, korisnička obavještenja ili potpuno prilagođeni sadržaj.
Kako radi
Pre nego što počnete sa Bootstrap modalnom komponentom, obavezno pročitajte sledeće jer su se naše opcije menija nedavno promenile.
Modali se grade pomoću HTML-a, CSS-a i JavaScript-a. Oni su pozicionirani iznad svega ostalog u dokumentu i uklanjaju pomicanje iz dokumenta <body>tako da se umjesto toga pomiče modalni sadržaj.
Klikom na modalnu „pozadinu“ automatski će se zatvoriti modal.
Bootstrap podržava samo jedan modalni prozor u isto vrijeme. Ugniježđeni modali nisu podržani jer vjerujemo da su loše korisničko iskustvo.
Modali koriste position: fixed, što ponekad može biti malo posebno u pogledu njegovog prikazivanja. Kad god je moguće, postavite svoj modalni HTML na poziciju najvišeg nivoa kako biste izbjegli potencijalne smetnje od drugih elemenata. Vjerovatno ćete naići na probleme kada ugniježdite a .modalunutar drugog fiksnog elementa.
Zbog načina na koji HTML5 definira svoju semantiku, HTML autofocusatribut nema efekta u Bootstrap modalima. Da biste postigli isti efekat, koristite neki prilagođeni JavaScript:
Nastavite čitati za demonstracije i smjernice za korištenje.
Primjeri
Modalne komponente
Ispod je statički modalni primjer (što znači da su njegovi positioni displayzamijenjeni). Uključeno je modalno zaglavlje, modalno tijelo (obavezno za padding) i modalno podnožje (opcionalno). Tražimo da uključite modalna zaglavlja s radnjama odbacivanja kad god je to moguće ili navedete drugu eksplicitnu radnju odbacivanja.
Modalni naslov
Modalni osnovni tekst ide ovdje.
Demo uživo
Uključite radnu modalnu demonstraciju klikom na dugme ispod. Kliziće nadole i nestajati sa vrha stranice.
Modalni naslov
Woohoo, čitaš ovaj tekst u modalnom obliku!
Statička pozadina
Kada je pozadina postavljena na statičnu, modal se neće zatvoriti kada kliknete izvan njega. Kliknite na dugme ispod da isprobate.
Modalni naslov
I will not close if you click outside me. Don't even try to press escape key.
Pomeranje dugog sadržaja
Kada modali postanu predugi za korisnikov okvir za pregled ili uređaj, oni se pomiču nezavisno od same stranice. Isprobajte demo u nastavku da vidite na šta mislimo.
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.
Također možete kreirati modal koji se može pomicati i koji omogućava pomicanje modalnog tijela dodavanjem .modal-dialog-scrollableu .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.
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.
Alati i iskačući oglasi
Oznake alata i skočni prozori mogu se postaviti unutar modala po potrebi. Kada se modali zatvore, svi opisi alata i skočni prozori unutar se također automatski odbacuju.
Koristite Bootstrap grid sistem unutar modalnog ugniježđenja .container-fluidunutar .modal-body. Zatim koristite normalne klase sistema mreže kao i bilo gdje drugdje.
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
Različiti modalni sadržaj
Imate gomilu dugmadi koja svi pokreću isti modal sa malo drugačijim sadržajem? Koristite event.relatedTargeti HTML data-*atribute (moguće putem jQueryja ) da promijenite sadržaj modalnog u zavisnosti od toga na koje dugme ste kliknuli.
Varijabla $modal-fade-transformodređuje stanje transformacije .modal-dialogprije modalne animacije fade-in, $modal-show-transformvarijabla određuje transformaciju .modal-dialogna kraju modalne animacije fade-in.
Ako želite na primjer animaciju zumiranja, možete postaviti $modal-fade-transform: scale(.8).
Ukloni animaciju
Za modale koji se jednostavno pojavljuju, a ne blede u prikazu, uklonite .fadeklasu iz modalne oznake.
Dinamičke visine
Ako se visina modala promijeni dok je otvoren, trebali biste pozvati $('#myModal').modal('handleUpdate')da ponovo prilagodite poziciju modala u slučaju da se pojavi traka za pomicanje.
Pristupačnost
Obavezno dodajte role="dialog"i aria-labelledby="...", pozivajući se na modalni naslov, na .modal, i role="document"na .modal-dialogsebe. Dodatno, možete dati opis svog modalnog dijaloga sa aria-describedbyna .modal.
Ugrađivanje YouTube video zapisa
Ugrađivanje YouTube videozapisa u modale zahtijeva dodatni JavaScript koji nije u Bootstrapu za automatsko zaustavljanje reprodukcije i još mnogo toga. Pogledajte ovu korisnu objavu Stack Overflow za više informacija.
Opcione veličine
Modali imaju tri opcione veličine, dostupne preko klasa modifikatora koje se postavljaju na .modal-dialog. Ove veličine se pojavljuju na određenim prijelomnim tačkama kako bi se izbjegle horizontalne trake za pomicanje na užim okvirima za prikaz.
Veličina
Klasa
Modalna maksimalna širina
Mala
.modal-sm
300px
Default
Nema
500px
Veliko
.modal-lg
800px
Ekstra veliki
.modal-xl
1140px
Naš zadani modal bez klase modifikatora čini modal "srednje" veličine.
Extra large modal
...
Large modal
...
Small modal
...
Upotreba
Modalni dodatak uključuje vaš skriveni sadržaj na zahtjev, putem atributa podataka ili JavaScripta. Takođe dodaje .modal-openda se <body>zaobiđe podrazumevano ponašanje pomeranja i generiše a .modal-backdropda bi se obezbedila oblast klika za odbacivanje prikazanih modala kada se klikne izvan modalnog.
Preko atributa podataka
Aktivirajte modalni bez pisanja JavaScripta. Postavite data-toggle="modal"na element kontrolera, poput dugmeta, zajedno sa data-target="#foo"ili href="#foo"da biste ciljali određeni modal za prebacivanje.
Preko JavaScripta
Pozovite modalni s ID myModal-om s jednom linijom JavaScripta:
Opcije
Opcije se mogu proslijediti putem atributa podataka ili JavaScript-a. Za atribute podataka dodajte naziv opcije u data-, kao u data-backdrop="".
Ime
Tip
Default
Opis
pozadina
boolean ili string'static'
tačno
Uključuje element modalne pozadine. Alternativno, navedite staticza pozadinu koja ne zatvara modal na klik ili na tipku za izlaz.
tastatura
boolean
tačno
Zatvara modal kada se pritisne tipka za izlaz
fokus
boolean
tačno
Stavlja fokus na modalni kada se inicijalizira.
show
boolean
tačno
Prikazuje modalni kada se inicijalizira.
Metode
Asinhrone metode i prijelazi
Sve API metode su asinhrone i pokreću tranziciju . Oni se vraćaju pozivaocu čim prijelaz započne, ali prije nego što se završi . Osim toga, poziv metode na prelaznu komponentu će biti zanemaren .
Aktivira vaš sadržaj kao modalni. Prihvata opcione opcije object.
.modal('toggle')
Ručno prebacuje modal. Vraća pozivaocu prije nego što je modal zapravo prikazan ili sakriven (tj. prije nego se dogodi događaj shown.bs.modalili ).hidden.bs.modal
.modal('show')
Ručno otvara modalni. Vraća se pozivaocu prije nego što je modalni stvarno prikazan (tj. prije nego što se shown.bs.modaldogađaj dogodi).
.modal('hide')
Ručno skriva modal. Vraća se pozivaocu prije nego što je modal zapravo skriven (tj. prije nego što se hidden.bs.modaldogodi događaj).
.modal('handleUpdate')
Ručno ponovo podesite poziciju modala ako se visina modala promijeni dok je otvoren (tj. u slučaju da se pojavi traka za pomicanje).
.modal('dispose')
Uništava modalni element.
Događaji
Bootstrap-ova modalna klasa izlaže nekoliko događaja za spajanje na modalnu funkcionalnost. Svi modalni događaji se aktiviraju na samom modalnom (tj. na <div class="modal">).
Vrsta događaja
Opis
show.bs.modal
Ovaj događaj se aktivira odmah kada showse pozove metoda instance. Ako je uzrokovan klikom, kliknuti element je dostupan kao relatedTargetsvojstvo događaja.
prikazano.bs.modal
Ovaj događaj se pokreće kada modal postane vidljiv korisniku (će pričekati da se CSS prijelazi dovrše). Ako je uzrokovan klikom, kliknuti element je dostupan kao relatedTargetsvojstvo događaja.
hide.bs.modal
Ovaj događaj se pokreće odmah kada se hidepozove metoda instance.
hidden.bs.modal
Ovaj događaj se pokreće kada modal završi sa sakrivanjem od korisnika (će čekati da se CSS tranzicije dovrše).
hidePrevented.bs.modal
Ovaj događaj se pokreće kada je prikazan modal, njegova pozadina statici kada se izvrši klik izvan modala ili pritisnut taster za izlaz.