Modale
Usa il plug-in modale JavaScript di Bootstrap per aggiungere finestre di dialogo al tuo sito per lightbox, notifiche utente o contenuto completamente personalizzato.
Prima di iniziare con il componente modale di Bootstrap, assicurati di leggere quanto segue poiché le nostre opzioni di menu sono cambiate di recente.
- I modali sono costruiti con HTML, CSS e JavaScript. Sono posizionati su tutto il resto del documento e rimuovono lo scorrimento in
<body>
modo che il contenuto modale scorra invece. - Cliccando sullo “sfondo” modale si chiuderà automaticamente il modale.
- Bootstrap supporta solo una finestra modale alla volta. Le modalità nidificate non sono supportate poiché riteniamo che siano esperienze utente scadenti.
- I modali usano
position: fixed
, che a volte può essere un po' particolare riguardo al suo rendering. Quando possibile, posiziona il tuo HTML modale in una posizione di primo livello per evitare potenziali interferenze da altri elementi. È probabile che si verifichino problemi durante l'annidamento di un.modal
elemento all'interno di un altro elemento fisso. - Ancora una volta, a causa di
position: fixed
, ci sono alcuni avvertimenti con l'utilizzo di modali sui dispositivi mobili. Consulta i nostri documenti di supporto del browser per i dettagli. - A causa del modo in cui HTML5 definisce la sua semantica, l'
autofocus
attributo HTML non ha effetto nelle modali Bootstrap. Per ottenere lo stesso effetto, usa del JavaScript personalizzato:
Continua a leggere per demo e linee guida sull'utilizzo.
Di seguito è riportato un esempio modale statico (che significa position
che display
è stato sovrascritto). Sono inclusi l'intestazione modale, il corpo modale (obbligatorio per padding
) e il piè di pagina modale (facoltativo). Ti chiediamo di includere le intestazioni modali con azioni di eliminazione quando possibile o di fornire un'altra azione di eliminazione esplicita.
Attiva o disattiva una demo modale funzionante facendo clic sul pulsante in basso. Scorrerà verso il basso e svanirà dalla parte superiore della pagina.
Quando le modali diventano troppo lunghe per il viewport o il dispositivo dell'utente, scorrono indipendentemente dalla pagina stessa. Prova la demo qui sotto per vedere cosa intendiamo.
Aggiungi .modal-dialog-centered
a .modal-dialog
per centrare verticalmente il modale.
Tooltip e popover possono essere inseriti all'interno di modali secondo necessità. Quando i modali vengono chiusi, anche i suggerimenti e i popover all'interno vengono automaticamente eliminati.
Utilizza il sistema di griglia Bootstrap all'interno di un modale annidando .container-fluid
all'interno del file .modal-body
. Quindi, usa le normali classi del sistema di griglia come faresti altrove.
Hai un sacco di pulsanti che attivano tutti la stessa modale con contenuti leggermente diversi? Usa event.relatedTarget
e attributi HTMLdata-*
(possibilmente tramite jQuery ) per variare il contenuto del modale a seconda del pulsante su cui è stato fatto clic.
Di seguito è riportata una demo dal vivo seguita da HTML e JavaScript di esempio. Per ulteriori informazioni, leggere i documenti degli eventi modali per i dettagli su relatedTarget
.
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo">Open modal for @mdo</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@fat">Open modal for @fat</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@getbootstrap">Open modal for @getbootstrap</button>
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">New message</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label for="recipient-name" class="col-form-label">Recipient:</label>
<input type="text" class="form-control" id="recipient-name">
</div>
<div class="form-group">
<label for="message-text" class="col-form-label">Message:</label>
<textarea class="form-control" id="message-text"></textarea>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Send message</button>
</div>
</div>
</div>
</div>
Per i modali che appaiono semplicemente invece di essere visualizzati in dissolvenza, rimuovi la .fade
classe dal markup modale.
Se l'altezza di una modale cambia mentre è aperta, dovresti chiamare $('#myModal').modal('handleUpdate')
per regolare nuovamente la posizione della modale nel caso in cui appaia una barra di scorrimento.
Assicurati di aggiungere role="dialog"
e aria-labelledby="..."
, facendo riferimento al titolo modale, a .modal
e role="document"
allo .modal-dialog
stesso. Inoltre, puoi fornire una descrizione della tua finestra di dialogo modale con aria-describedby
su .modal
.
L'incorporamento di video di YouTube in modalità modali richiede JavaScript aggiuntivo non in Bootstrap per interrompere automaticamente la riproduzione e altro ancora. Per ulteriori informazioni, vedere questo utile post sull'overflow dello stack .
I modali hanno due dimensioni opzionali, disponibili tramite classi di modifica da posizionare su un file .modal-dialog
. Queste dimensioni si attivano in determinati punti di interruzione per evitare barre di scorrimento orizzontali su finestre più strette.
Il plug-in modale attiva o disattiva i tuoi contenuti nascosti su richiesta, tramite attributi di dati o JavaScript. Aggiunge anche .modal-open
al <body>
comportamento di scorrimento predefinito per sovrascrivere e genera un'area .modal-backdrop
di clic per eliminare i modali mostrati quando si fa clic al di fuori del modale.
Attiva un modale senza scrivere JavaScript. Impostato data-toggle="modal"
su un elemento del controller, come un pulsante, insieme a data-target="#foo"
o href="#foo"
per scegliere come target una modale specifica da attivare.
Chiama un modale con id myModal
con una singola riga di JavaScript:
Le opzioni possono essere passate tramite attributi di dati o JavaScript. Per gli attributi dei dati, aggiungere il nome dell'opzione a data-
, come in data-backdrop=""
.
Nome | Tipo | Predefinito | Descrizione |
---|---|---|---|
sfondo | booleano o la stringa'static' |
VERO | Include un elemento di sfondo modale. In alternativa, specificare static uno sfondo che non chiude il modale al clic. |
tastiera del computer | booleano | VERO | Chiude il modale quando viene premuto il tasto Esc |
messa a fuoco | booleano | VERO | Mette lo stato attivo sul modale quando inizializzato. |
mostrare | booleano | VERO | Mostra il modale quando inizializzato. |
Metodi e transizioni asincrone
Tutti i metodi API sono asincroni e avviano una transizione . Ritornano al chiamante non appena la transizione è iniziata ma prima che termini . Inoltre, una chiamata al metodo su un componente in transizione verrà ignorata .
Consulta la nostra documentazione JavaScript per ulteriori informazioni.
Attiva il tuo contenuto come modale. Accetta opzioni opzionali object
.
Alterna manualmente un modale. Ritorna al chiamante prima che il modale sia stato effettivamente mostrato o nascosto (cioè prima che si verifichi l' evento shown.bs.modal
o hidden.bs.modal
).
Apre manualmente un modale. Ritorna al chiamante prima che il modale sia stato effettivamente mostrato (cioè prima shown.bs.modal
che si verifichi l'evento).
Nasconde manualmente un modale. Ritorna al chiamante prima che il modale sia stato effettivamente nascosto (cioè prima hidden.bs.modal
che si verifichi l'evento).
Regolare manualmente la posizione del modale se l'altezza di un modale cambia mentre è aperto (cioè nel caso in cui appaia una barra di scorrimento).
Distrugge il modale di un elemento.
La classe modale di Bootstrap espone alcuni eventi per l'aggancio alla funzionalità modale. Tutti gli eventi modali vengono attivati sul modale stesso (cioè al <div class="modal">
).
Tipo di evento | Descrizione |
---|---|
show.bs.modal | Questo evento viene attivato immediatamente quando show viene chiamato il metodo dell'istanza. Se causato da un clic, l'elemento cliccato è disponibile come relatedTarget proprietà dell'evento. |
mostrato.bs.modale | Questo evento viene attivato quando il modale è stato reso visibile all'utente (attenderà il completamento delle transizioni CSS). Se causato da un clic, l'elemento cliccato è disponibile come relatedTarget proprietà dell'evento. |
nascondi.bs.modale | Questo evento viene generato immediatamente quando hide viene chiamato il metodo dell'istanza. |
nascosto.bs.modale | Questo evento viene generato quando il modale ha finito di essere nascosto all'utente (attenderà il completamento delle transizioni CSS). |