Gunakan plugin modal JavaScript Bootstrap untuk menambahkan dialog ke situs Anda untuk lightbox, pemberitahuan pengguna, atau konten yang sepenuhnya khusus.
Bagaimana itu bekerja
Sebelum memulai dengan komponen modal Bootstrap, pastikan untuk membaca yang berikut ini karena opsi menu kami baru saja berubah.
Modals dibangun dengan HTML, CSS, dan JavaScript. Mereka diposisikan di atas segala sesuatu yang lain dalam dokumen dan menghapus gulir dari <body>sehingga konten modal bergulir sebagai gantinya.
Mengklik pada "latar belakang" modal akan secara otomatis menutup modal.
Bootstrap hanya mendukung satu jendela modal pada satu waktu. Modal bersarang tidak didukung karena kami yakin itu adalah pengalaman pengguna yang buruk.
Modals use position: fixed, yang terkadang agak khusus tentang renderingnya. Bila memungkinkan, tempatkan modal HTML Anda di posisi teratas untuk menghindari potensi gangguan dari elemen lain. Anda mungkin akan mengalami masalah saat menyarangkan a .modaldi dalam elemen tetap lainnya.
Sekali lagi, karena position: fixed, ada beberapa peringatan dengan menggunakan modals di perangkat seluler. Lihat dokumen dukungan browser kami untuk detailnya.
Karena bagaimana HTML5 mendefinisikan semantiknya, atribut autofocusHTML tidak berpengaruh pada modals Bootstrap. Untuk mencapai efek yang sama, gunakan beberapa JavaScript khusus:
Teruslah membaca untuk demo dan panduan penggunaan.
Contoh
komponen modal
Di bawah ini adalah contoh modal statis (artinya positiondan displaytelah diganti). Termasuk adalah modal header, modal body (diperlukan untuk padding), dan modal footer (opsional). Kami meminta Anda menyertakan header modal dengan tindakan pemberhentian bila memungkinkan, atau memberikan tindakan pemberhentian eksplisit lainnya.
Judul modal
Teks isi modal ada di sini.
Demo langsung
Alihkan demo modal kerja dengan mengklik tombol di bawah ini. Ini akan meluncur ke bawah dan memudar dari bagian atas halaman.
Modal title
Woohoo, you're reading this text in a modal!
Latar belakang statis
Ketika latar belakang diatur ke statis, modal tidak akan menutup saat mengklik di luarnya. Klik tombol di bawah untuk mencobanya.
Modal title
I will not close if you click outside me. Don't even try to press escape key.
Menggulir konten panjang
Ketika modals menjadi terlalu panjang untuk viewport atau perangkat pengguna, mereka menggulir terlepas dari halaman itu sendiri. Coba demo di bawah ini untuk melihat apa yang kami maksud.
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.
Anda juga dapat membuat modal yang dapat digulir yang memungkinkan gulir badan modal dengan menambahkan .modal-dialog-scrollableke .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.
Berpusat vertikal
Tambahkan .modal-dialog-centeredke .modal-dialoguntuk memusatkan modal secara vertikal.
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.
Tooltip dan popover
Tooltips dan popovers dapat ditempatkan di dalam modals sesuai kebutuhan. Ketika modals ditutup, tooltips dan popovers apa pun di dalamnya juga secara otomatis diberhentikan.
Manfaatkan sistem grid Bootstrap dalam modal dengan bersarang .container-fluiddi dalam file .modal-body. Kemudian, gunakan kelas sistem grid normal seperti yang Anda lakukan di tempat lain.
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
Memvariasikan konten modal
Punya banyak tombol yang semuanya memicu modal yang sama dengan konten yang sedikit berbeda? Gunakan event.relatedTargetdan atribut HTMLdata-* (mungkin melalui jQuery ) untuk memvariasikan konten modal tergantung pada tombol mana yang diklik.
Di bawah ini adalah demo langsung diikuti dengan contoh HTML dan JavaScript. Untuk informasi lebih lanjut, baca dokumen acara modal untuk detail tentang relatedTarget.
New message
Ubah animasi
Variabel $modal-fade-transformmenentukan status transformasi .modal-dialogsebelum animasi mode fade-in, $modal-show-transformvariabel menentukan transformasi .modal-dialogdi akhir animasi mode fade-in.
Jika Anda ingin misalnya animasi zoom-in, Anda dapat mengatur $modal-fade-transform: scale(.8).
Hapus animasi
Untuk modals yang hanya muncul daripada menghilang untuk dilihat, hapus .fadekelas dari markup modal Anda.
Ketinggian dinamis
Jika ketinggian modal berubah saat terbuka, Anda harus memanggil $('#myModal').modal('handleUpdate')untuk menyesuaikan kembali posisi modal jika bilah gulir muncul.
Aksesibilitas
Pastikan untuk menambahkan role="dialog"dan aria-labelledby="...", dengan merujuk judul modal, ke .modal, dan role="document"ke .modal-dialogdirinya sendiri. Selain itu, Anda dapat memberikan deskripsi dialog modal Anda dengan aria-describedbyon .modal.
Menyematkan video YouTube
Menyematkan video YouTube dalam modals memerlukan JavaScript tambahan yang tidak ada di Bootstrap untuk secara otomatis menghentikan pemutaran dan banyak lagi. Lihat posting Stack Overflow yang bermanfaat ini untuk informasi lebih lanjut.
Ukuran opsional
Modals memiliki tiga ukuran opsional, tersedia melalui kelas pengubah untuk ditempatkan pada file .modal-dialog. Ukuran ini masuk pada breakpoint tertentu untuk menghindari scrollbar horizontal pada viewport yang lebih sempit.
Ukuran
Kelas
Modal max-lebar
Kecil
.modal-sm
300px
Bawaan
Tidak ada
500px
Besar
.modal-lg
800px
Ekstra besar
.modal-xl
1140px
Modal default kami tanpa kelas pengubah merupakan modal ukuran "sedang".
Extra large modal
...
Large modal
...
Small modal
...
Penggunaan
Plugin modal mengaktifkan konten tersembunyi Anda sesuai permintaan, melalui atribut data atau JavaScript. Itu juga menambah .modal-openuntuk <body>menimpa perilaku pengguliran default dan menghasilkan a .modal-backdropuntuk menyediakan area klik untuk mengabaikan modal yang ditampilkan saat mengklik di luar modal.
Melalui atribut data
Aktifkan modal tanpa menulis JavaScript. Setel data-toggle="modal"pada elemen pengontrol, seperti tombol, bersama dengan a data-target="#foo"atau href="#foo"untuk menargetkan modal tertentu untuk beralih.
Melalui JavaScript
Panggil modal dengan id myModaldengan satu baris JavaScript:
Pilihan
Opsi dapat diteruskan melalui atribut data atau JavaScript. Untuk atribut data, tambahkan nama opsi ke data-, seperti pada data-backdrop="".
Nama
Jenis
Bawaan
Keterangan
latar belakang
boolean atau string'static'
BENAR
Termasuk elemen modal-backdrop. Atau, tentukan staticlatar belakang yang tidak menutup modal saat klik atau saat tombol escape ditekan.
papan ketik
boolean
BENAR
Menutup modal saat tombol escape ditekan
fokus
boolean
BENAR
Menempatkan fokus pada modal saat diinisialisasi.
menunjukkan
boolean
BENAR
Menampilkan modal saat diinisialisasi.
Metode
Metode dan transisi asinkron
Semua metode API tidak sinkron dan memulai transisi . Mereka kembali ke penelepon segera setelah transisi dimulai tetapi sebelum berakhir . Selain itu, pemanggilan metode pada komponen transisi akan diabaikan .
Mengaktifkan konten Anda sebagai modal. Menerima opsi opsional object.
.modal('toggle')
Mengalihkan modal secara manual. Kembali ke pemanggil sebelum modal benar-benar ditampilkan atau disembunyikan (yaitu sebelum shown.bs.modalatau hidden.bs.modalperistiwa terjadi).
.modal('show')
Secara manual membuka modal. Kembali ke pemanggil sebelum modal benar-benar ditampilkan (yaitu sebelum shown.bs.modalperistiwa terjadi).
.modal('hide')
Secara manual menyembunyikan modal. Kembali ke pemanggil sebelum modal benar-benar disembunyikan (yaitu sebelum hidden.bs.modalperistiwa terjadi).
.modal('handleUpdate')
Sesuaikan kembali posisi modal secara manual jika ketinggian modal berubah saat modal dibuka (yaitu jika bilah gulir muncul).
.modal('dispose')
Menghancurkan modal elemen.
Acara
Kelas modal Bootstrap memperlihatkan beberapa peristiwa untuk menghubungkan ke fungsionalitas modal. Semua peristiwa modal dipecat pada modal itu sendiri (yaitu di <div class="modal">).
Jenis Acara
Keterangan
show.bs.modal
Acara ini langsung aktif ketikashow metode instance dipanggil. Jika disebabkan oleh klik, elemen yang diklik tersedia sebagai relatedTargetproperti acara.
ditampilkan.bs.modal
Acara ini dipicu ketika modal telah dibuat terlihat oleh pengguna (akan menunggu transisi CSS selesai). Jika disebabkan oleh klik, elemen yang diklik tersedia sebagai relatedTargetproperti acara.
hide.bs.modal
Acara ini dipecat segera ketika hidemetode instance telah dipanggil.
hidden.bs.modal
Acara ini dipicu ketika modal telah selesai disembunyikan dari pengguna (akan menunggu transisi CSS selesai).
hidePrevented.bs.modal
Acara ini dipicu ketika modal ditampilkan, latar belakangnya staticdan klik di luar modal atau penekanan tombol escape dilakukan.