Utilizați pluginul modal JavaScript al Bootstrap pentru a adăuga casete de dialog pe site-ul dvs. pentru casete luminoase, notificări de utilizator sau conținut complet personalizat.
Cum functioneaza
Înainte de a începe cu componenta modală a Bootstrap, asigurați-vă că citiți următoarele, deoarece opțiunile noastre de meniu s-au schimbat recent.
Modalurile sunt construite cu HTML, CSS și JavaScript. Ele sunt poziționate peste orice altceva din document și elimină derularea din, <body>astfel încât conținutul modal să defileze în schimb.
Făcând clic pe „fondul” modal, se va închide automat modalul.
Bootstrap acceptă doar o fereastră modală la un moment dat. Modalurile imbricate nu sunt acceptate, deoarece considerăm că sunt experiențe slabe pentru utilizator.
Modalii folosesc position: fixed, care uneori poate fi puțin specific în ceea ce privește redarea sa. Ori de câte ori este posibil, plasați codul HTML modal într-o poziție de nivel superior pentru a evita potențiala interferență din partea altor elemente. Probabil că veți întâmpina probleme atunci când imbricați un .modalalt element fix.
Datorită modului în care HTML5 își definește semantica, atributul autofocusHTML nu are niciun efect în modalele Bootstrap. Pentru a obține același efect, utilizați JavaScript personalizat:
Continuați să citiți pentru demonstrații și instrucțiuni de utilizare.
Exemple
Componentele modale
Mai jos este un exemplu modal static (adică positionși displayau fost suprascrise). Sunt incluse antetul modal, corpul modal (necesar pentru padding) și subsolul modal (opțional). Vă rugăm să includeți antete modale cu acțiuni de respingere ori de câte ori este posibil sau să furnizați o altă acțiune explicită de respingere.
Titlul modal
Textul corporal modal merge aici.
Demo live
Comutați o demonstrație modală funcțională făcând clic pe butonul de mai jos. Acesta va aluneca în jos și va dispărea din partea de sus a paginii.
Titlul modal
Woohoo, citești acest text într-un mod!
Fundal static
Când fundalul este setat la static, modalul nu se va închide când faceți clic în afara acestuia. Faceți clic pe butonul de mai jos pentru a-l încerca.
Titlul modal
Nu voi închide dacă faceți clic în afara mea. Nici măcar nu încercați să apăsați tasta Escape.
Derularea conținutului lung
Când modalele devin prea lungi pentru vizualizarea sau dispozitivul utilizatorului, ele derulează independent de pagina în sine. Încercați demonstrația de mai jos pentru a vedea la ce ne referim.
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.
De asemenea, puteți crea un modal derulabil care permite derularea corpului modal prin adăugarea .modal-dialog-scrollablela .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.
Centrat pe verticală
Adăugați .modal-dialog-centeredla .modal-dialogpentru a centra vertical modalul.
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.
Sfaturi de instrumente și popovers
Sfaturile cu instrumente și popover -urile pot fi plasate în modal după cum este necesar. Când modalele sunt închise, toate sfaturile instrumente și popover-urile din interior sunt, de asemenea, respinse automat.
Utilizați sistemul de grilă Bootstrap într-un modal prin imbricarea .container-fluidîn .modal-body. Apoi, utilizați clasele normale ale sistemului de grilă așa cum ați face oriunde altundeva.
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
Conținut modal variat
Aveți o grămadă de butoane care declanșează același modal cu conținut ușor diferit? Utilizați event.relatedTargetși atributele HTMLdata-* (eventual prin jQuery ) pentru a varia conținutul modalului în funcție de ce buton a fost făcut clic.
Mai jos este o demonstrație live urmată de exemplu HTML și JavaScript. Pentru mai multe informații, citiți documentele despre evenimente modale pentru detalii despre relatedTarget.
New message
Schimbați animația
Variabila $modal-fade-transformdetermină starea de transformare a .modal-dialogînainte de animația de fade-in modală, $modal-show-transformvariabila determină transformarea de .modal-dialogla sfârșitul animației de fade-in modal.
Dacă doriți, de exemplu, o animație de mărire, puteți seta $modal-fade-transform: scale(.8).
Eliminați animația
Pentru modalele care apar pur și simplu în loc să se estompeze pentru a le vizualiza, eliminați .fadeclasa din marcajul modal.
Înălțimi dinamice
Dacă înălțimea unui modal se modifică în timp ce este deschis, ar trebui să sunați $('#myModal').modal('handleUpdate')pentru a reajusta poziția modalului în cazul în care apare o bară de defilare.
Accesibilitate
Asigurați-vă că adăugați role="dialog"și aria-labelledby="...", făcând referire la titlul modal, la .modal, și role="document"la .modal-dialogînsuși. În plus, puteți oferi o descriere a dialogului dvs. modal cu aria-describedbyon .modal.
Încorporarea videoclipurilor YouTube
Încorporarea videoclipurilor YouTube în modal necesită JavaScript suplimentar care nu este în Bootstrap pentru a opri automat redarea și multe altele. Consultați această postare utilă Stack Overflow pentru mai multe informații.
Dimensiuni optionale
Modalurile au trei dimensiuni opționale, disponibile prin clase de modificatori pentru a fi plasate pe un .modal-dialog. Aceste dimensiuni intervin la anumite puncte de întrerupere pentru a evita barele de defilare orizontale pe ferestrele de vizualizare mai înguste.
mărimea
Clasă
Lățimea maximă modală
Mic
.modal-sm
300px
Mod implicit
Nici unul
500px
Mare
.modal-lg
800px
Foarte mare
.modal-xl
1140px
Modal nostru implicit fără clasa modificatoare constituie modal de dimensiune „medie”.
Extra large modal
...
Large modal
...
Small modal
...
Utilizare
Pluginul modal schimbă conținutul ascuns la cerere, prin atribute de date sau JavaScript. De asemenea, se adaugă .modal-openla <body>comportamentul de defilare implicit pentru a suprascrie și generează o .modal-backdropzonă pentru a oferi o zonă de clic pentru respingerea modalelor afișate atunci când faceți clic în afara modalului.
Prin atribute de date
Activați un mod fără a scrie JavaScript. Setați data-toggle="modal"pe un element de controler, cum ar fi un buton, împreună cu data-target="#foo"sau href="#foo"pentru a viza un anumit mod de comutare.
Prin JavaScript
Apelați un modal cu id myModalcu o singură linie de JavaScript:
Opțiuni
Opțiunile pot fi transmise prin atribute de date sau JavaScript. Pentru atributele datelor, adăugați numele opțiunii la data-, ca în data-backdrop="".
Nume
Tip
Mod implicit
Descriere
fundal
boolean sau șirul'static'
Adevărat
Include un element modal de fundal. Alternativ, specificați staticpentru un fundal care nu închide modalul la clic sau la apăsarea tastei Escape.
tastatură
boolean
Adevărat
Închide modulul când este apăsată tasta Escape
se concentreze
boolean
Adevărat
Pune accentul pe modal atunci când este inițializat.
spectacol
boolean
Adevărat
Afișează modal atunci când este inițializat.
Metode
Metode și tranziții asincrone
Toate metodele API sunt asincrone și încep o tranziție . Ei revin la apelant imediat ce tranziția este începută, dar înainte ca aceasta să se încheie . În plus, un apel de metodă pentru o componentă de tranziție va fi ignorat .
Activează conținutul dvs. ca modal. Acceptă opțiuni opționale object.
.modal('toggle')
Comută manual un mod. Se întoarce la apelant înainte ca modalul să fie afișat sau ascuns (adică înainte ca evenimentul shown.bs.modalsau să hidden.bs.modalapară).
.modal('show')
Deschide manual un modal. Se întoarce la apelant înainte ca modalul să fie afișat efectiv (adică înainte de apariția shown.bs.modalevenimentului).
.modal('hide')
Ascunde manual un modal. Se întoarce la apelant înainte ca modalul să fi fost efectiv ascuns (adică înainte de apariția hidden.bs.modalevenimentului).
.modal('handleUpdate')
Reajustați manual poziția modalului dacă înălțimea unui modal se modifică în timp ce acesta este deschis (adică în cazul în care apare o bară de defilare).
.modal('dispose')
Distruge modalul unui element.
Evenimente
Clasa modală a Bootstrap expune câteva evenimente pentru conectarea la funcționalitatea modală. Toate evenimentele modale sunt declanșate la modal în sine (adică la <div class="modal">).
Tip de eveniment
Descriere
show.bs.modal
Acest eveniment se declanșează imediat când showeste apelată metoda instanței. Dacă este cauzat de un clic, elementul pe care s-a făcut clic este disponibil ca relatedTargetproprietate a evenimentului.
arătat.bs.modal
Acest eveniment este declanșat atunci când modalul a fost făcut vizibil pentru utilizator (va aștepta finalizarea tranzițiilor CSS). Dacă este cauzat de un clic, elementul pe care s-a făcut clic este disponibil ca relatedTargetproprietate a evenimentului.
ascunde.bs.modal
Acest eveniment este declanșat imediat când hidemetoda instanței a fost apelată.
ascuns.bs.modal
Acest eveniment este declanșat când modalul a terminat de ascuns utilizatorului (va aștepta finalizarea tranzițiilor CSS).
hidePrevented.bs.modal
Acest eveniment este declanșat când modalul este afișat, fundalul său este staticși se efectuează un clic în afara modalului sau o apăsare a tastei de evacuare.