Bootstrap - Plugin modale
Un modale è una finestra figlia che è sovrapposta alla sua finestra genitore. In genere, lo scopo è visualizzare il contenuto da un'origine separata che può avere qualche interazione senza lasciare la finestra principale. Le finestre secondarie possono fornire informazioni, interazioni o altro.
Se desideri includere questa funzionalità di plugin individualmente, allora avrai bisogno di modal.js. Altrimenti, come menzionato nel capitolo Panoramica sui plug-in Bootstrap , puoi includere bootstrap.js o bootstrap.min.js minimizzato .
Utilizzo
Puoi attivare il contenuto nascosto del plug-in modale -
Via data attributes - Imposta attributo data-toggle = "modal" su un elemento del controller, come un pulsante o un collegamento, insieme a un file data-target = "#identifier" o href = "#identifier" per scegliere come target un modale specifico (con id = "identificatore") da attivare.
Via JavaScript - Usando questa tecnica puoi chiamare un modale con id = "identificatore" con una singola riga di JavaScript -
$('#identifier').modal(options)
Esempio
Un esempio di finestra modale statica è mostrato nel seguente esempio:
<h2>Example of creating Modals with Twitter Bootstrap</h2>
<!-- Button trigger modal -->
<button class = "btn btn-primary btn-lg" data-toggle = "modal" data-target = "#myModal">
Launch demo modal
</button>
<!-- Modal -->
<div class = "modal fade" id = "myModal" tabindex = "-1" role = "dialog"
aria-labelledby = "myModalLabel" aria-hidden = "true">
<div class = "modal-dialog">
<div class = "modal-content">
<div class = "modal-header">
<button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true">
×
</button>
<h4 class = "modal-title" id = "myModalLabel">
This Modal title
</h4>
</div>
<div class = "modal-body">
Add some text here
</div>
<div class = "modal-footer">
<button type = "button" class = "btn btn-default" data-dismiss = "modal">
Close
</button>
<button type = "button" class = "btn btn-primary">
Submit changes
</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
Details of the preceding code −
Per richiamare la finestra modale, è necessario disporre di una sorta di trigger. Puoi utilizzare un pulsante o un collegamento. Qui abbiamo usato un pulsante.
Se guardi nel codice sopra, vedrai che nel tag <button>, il data-target = "#myModal"è l'obiettivo del modale che vuoi caricare sulla pagina. Questo codice ti consente di creare più modali sulla pagina e quindi avere diversi trigger per ciascuno di essi. Ora, per essere chiari, non carichi più modali contemporaneamente, ma puoi crearne molti sulle pagine per caricarli in momenti diversi.
Ci sono due classi di cui prendere nota nel modale:
Il primo è .modal, che identifica semplicemente il contenuto di <div> come modale.
E il secondo è il .fadeclasse. Quando il modale è attivato, il contenuto verrà visualizzato in dissolvenza in entrata e in uscita.
aria-labelledby = "myModalLabel", attributo fa riferimento al titolo modale.
L'attributo aria-hidden = "true" viene utilizzato per mantenere invisibile la finestra modale fino a quando non viene attivato un trigger (come un clic sul pulsante associato).
<div class = "modal-header">, modal-header è la classe per definire lo stile per l'intestazione della finestra modale.
class = "close", è una chiusura della classe CSS che imposta lo stile per il pulsante Chiudi della finestra modale.
data-dismiss = "modal", è un attributo di dati HTML5 personalizzato. Qui viene utilizzato per chiudere la finestra modale.
class = "modal-body", è una classe CSS di Bootstrap CSS per impostare lo stile per il corpo della finestra modale.
class = "modal-footer", è una classe CSS di Bootstrap CSS per impostare lo stile per il piè di pagina della finestra modale.
data-toggle = "modal", L'attributo dati personalizzato HTML5 data-toggle viene utilizzato per aprire la finestra modale.
Opzioni
Ci sono alcune opzioni che possono essere passate tramite attributi di dati o JavaScript per personalizzare l'aspetto della finestra modale. La tabella seguente elenca le opzioni:
Nome opzione | Tipo / valore predefinito | Nome attributo dati | Descrizione |
---|---|---|---|
sfondo | booleano o la stringa "statica" Predefinito: vero | contesto dei dati | Specificare statico per uno sfondo, se non si desidera che il modale venga chiuso quando l'utente fa clic al di fuori del modale. |
tastiera | booleano Predefinito: vero | tastiera dati | Chiude il modale quando viene premuto il tasto Esc; impostato su false per disabilitare. |
mostrare | booleano Predefinito: vero | data-spettacolo | Mostra il modale quando inizializzato. |
a distanza | percorso predefinito: false | dati remoti | Utilizzando il metodo jQuery .load , inserisci il contenuto nel corpo modale. Se viene aggiunto un href con un URL valido, caricherà quel contenuto. Un esempio di ciò è mostrato di seguito: |
Metodi
Ecco alcuni metodi utili che possono essere usati con modal ().
Metodo | Descrizione | Esempio |
---|---|---|
Options - .modal (opzioni) | Attiva il tuo contenuto come modale. Accetta un oggetto opzioni opzionale. | |
Toggle - .modal ('toggle') | Commuta manualmente un modale. | |
Show - .modal ('mostra') | Apre manualmente un modale. | |
Hide - .modal ('nascondi') | Nasconde manualmente un modale. | |
Esempio
Il seguente esempio dimostra l'utilizzo dei metodi:
<h2>Example of using methods of Modal Plugin</h2>
<!-- Button trigger modal -->
<button class = "btn btn-primary btn-lg" data-toggle = "modal" data-target = "#myModal">
Launch demo modal
</button>
<!-- Modal -->
<div class = "modal fade" id = "myModal" tabindex = "-1" role = "dialog"
aria-labelledby = "myModalLabel" aria-hidden = "true">
<div class = "modal-dialog">
<div class = "modal-content">
<div class = "modal-header">
<button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true">
×
</button>
<h4 class = "modal-title" id = "myModalLabel">
This Modal title
</h4>
</div>
<div class = "modal-body">
Press ESC button to exit.
</div>
<div class = "modal-footer">
<button type = "button" class = "btn btn-default" data-dismiss = "modal">
Close
</button>
<button type = "button" class = "btn btn-primary">
Submit changes
</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<script>
$(function () { $('#myModal').modal({
keyboard: true
})});
</script>
Basta fare clic sul pulsante Esc e la finestra modale si chiude.
Eventi
La tabella seguente elenca gli eventi su cui lavorare con modal. Questi eventi possono essere utilizzati per agganciarsi alla funzione.
Evento | Descrizione | Esempio |
---|---|---|
show.bs.modal | Sparato dopo che è stato chiamato il metodo show. | |
mostrato.bs. modale | Attivato quando il modale è stato reso visibile all'utente (aspetterà il completamento delle transizioni CSS). | |
hide.bs.modal | Attivato quando è stato chiamato il metodo di istanza hide. | |
hidden.bs.modal | Sparato quando il modale ha finito di essere nascosto all'utente. | |
Esempio
L'esempio seguente mostra l'utilizzo degli eventi:
<h2>Example of using events of Modal Plugin</h2>
<!-- Button trigger modal -->
<button class = "btn btn-primary btn-lg" data-toggle = "modal" data-target = "#myModal">
Launch demo modal
</button>
<!-- Modal -->
<div class = "modal fade" id = "myModal" tabindex = "-1" role = "dialog"
aria-labelledby = "myModalLabel" aria-hidden = "true">
<div class = "modal-dialog">
<div class = "modal-content">
<div class = "modal-header">
<button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true">
×
</button>
<h4 class = "modal-title" id = "myModalLabel">
This Modal title
</h4>
</div>
<div class = "modal-body">
Click on close button to check Event functionality.
</div>
<div class = "modal-footer">
<button type = "button" class = "btn btn-default" data-dismiss = "modal">
Close
</button>
<button type = "button" class = "btn btn-primary">
Submit changes
</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<script>
$(function () { $('#myModal').modal('hide')})});
</script>
<script>
$(function () { $('#myModal').on('hide.bs.modal', function () {
alert('Hey, I heard you like modals...');})
});
</script>
Come si vede nella schermata sopra, se si fa clic sul pulsante Chiudi , ovvero nascondi evento, viene visualizzato un messaggio di avviso.