Bootstrap - Modals: Panduan untuk Pemula

Hai teman-teman, pengembang web masa depan! Hari ini, kita akan melompat ke dunia yang menarik dari Bootstrap Modals. Jangan khawatir jika Anda belum pernah mendengar tentang mereka sebelumnya - pada akhir panduan ini, Anda akan membuat jendela muncul seperti seorang pro!

Bootstrap - Modal

Apa Itu Modal?

Sebelum kita masuk ke detil, mari kita fahami apa itu modal. Bayangkan Anda membaca buku, dan tiba-tiba catatan sticky kecil muncul dengan informasi penting. Itu sebenarnya apa yang dilakukan modal di website! Itu adalah kotak dialog atau jendela popup yang muncul di atas halaman saat ini.

Komponen Modal

Mari kita mulai dengan struktur dasar modal Bootstrap:

<div class="modal" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Judul Modal</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<p>Teks badan modal ditempatkan di sini.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Tutup</button>
<button type="button" class="btn btn-primary">Simpan perubahan</button>
</div>
</div>
</div>
</div>

mari kitauraikan ini:

  • <div> luar dengan kelas "modal" adalah wadah utama.
  • Didalamnya, kita memiliki "modal-dialog" yang mengontrol bentuk dan posisi modal.
  • "modal-content" memegang konten nyata modal kita.
  • Kita kemudian memiliki tiga bagian: header, body, dan footer.

Latar Belakang Statis

kadang-kadang, Anda ingin modalku tetap ada sampai pengguna berinteraksi dengannya. Itu di mana latar belakang statis membantu:

<div class="modal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1">
<!-- Konten modal di sini -->
</div>

Dengan menambahkan data-bs-backdrop="static", modal tidak akan tutup saat mengklik di luar nya. data-bs-keyboard="false" menghindari penutupan dengan tombol Esc.

Modal Bisa Scrol

Banyak konten? Tak masalah! Buat modalku bisa di geser:

<div class="modal-dialog modal-dialog-scrollable">
<!-- Konten modal di sini -->
</div>

Menambahkan kelas modal-dialog-scrollable memungkinkan badan modal untuk digeser sementara menjaga header dan footer di tempatnya.

Vertikal Tengah

Ingin modalku berada di tengah layar? Mudah-mudahan!

<div class="modal-dialog modal-dialog-centered">
<!-- Konten modal di sini -->
</div>

Kelas modal-dialog-centered bekerja untuk menengahkan modalku secara vertikal.

Tips dan Popovers

Anda bahkan dapat menggunakan tips dan popovers dalam modalku. Hanya ingat untuk menginisiasikan mereka:

var myModal = document.getElementById('myModal')
var myInput = document.getElementById('myInput')

myModal.addEventListener('shown.bs.modal', function () {
myInput.focus()
})

Menggunakan Grid

Sistem grid Bootstrap juga bekerja dalam modalku! Ini contohnya:

<div class="modal-body">
<div class="container-fluid">
<div class="row">
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4 ms-auto">.col-md-4 .ms-auto</div>
</div>
</div>
</div>

Ini membuat tata letak dua kolom di dalam badan modalku.

Mengubah Konten Modal

Anda dapat mengubah konten modalku secara dinamis. Ini cara nya:

var exampleModal = document.getElementById('exampleModal')
exampleModal.addEventListener('show.bs.modal', function (event) {
var button = event.relatedTarget
var recipient = button.getAttribute('data-bs-whatever')
var modalTitle = exampleModal.querySelector('.modal-title')
var modalBodyInput = exampleModal.querySelector('.modal-body input')

modalTitle.textContent = 'Pesan baru ke ' + recipient
modalBodyInput.value = recipient
})

Skrip ini mengubah konten modalku berdasarkan tombol yang memicu nya.

Bertukar Antara Modals

Anda bahkan dapat berpindah antara modals yang berbeda:

<div class="modal fade" id="exampleModalToggle" aria-hidden="true" aria-labelledby="exampleModalToggleLabel" tabindex="-1">
<!-- Konten modal pertama -->
<button class="btn btn-primary" data-bs-target="#exampleModalToggle2" data-bs-toggle="modal">Buka modal kedua</button>
</div>
<div class="modal fade" id="exampleModalToggle2" aria-hidden="true" aria-labelledby="exampleModalToggleLabel2" tabindex="-1">
<!-- Konten modal kedua -->
<button class="btn btn-primary" data-bs-target="#exampleModalToggle" data-bs-toggle="modal">Kembali ke pertama</button>
</div>

Mengubah Animasi

Ingin menambahkan kejutan ke masuknya modalku? Cobalah mengubah animasi:

<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<!-- Konten modal -->
</div>

Kelas fade menambahkan efek pencah. Anda dapat membuat animasi khusus menggunakan CSS!

Ketinggian Dinamis

Modals dapat menyesuaikan tingginya berdasarkan konten:

<div class="modal-dialog modal-dialog-scrollable">
<!-- Konten modal dengan tinggi berbeda -->
</div>

Kelas modal-dialog-scrollable memastikan modalku terlihat bagus tanpa menghiraukan panjang kontennya.

Aksesibilitas

Selalu pertimbangkan aksesibilitas! Gunakan aria-labelledby untuk merujuk ke judul modalku:

<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Judul Modal</h5>
<!-- Konten modal lainnya -->
</div>
</div>
</div>
</div>

Ukuran Opsional

Modals tersedia dalam ukuran yang berbeda:

<!-- Modal kecil -->
<div class="modal-dialog modal-sm">...</div>

<!-- Modal besar -->
<div class="modal-dialog modal-lg">...</div>

<!-- Modal ekstra besar -->
<div class="modal-dialog modal-xl">...</div>

Modal Layar Penuh

Ingin modalku mengambil keseluruhan layar? Gunakan kelas layar penuh:

<div class="modal-dialog modal-fullscreen">
<!-- Konten modal -->
</div>

Anda juga dapat membuatnya layar penuh hanya pada ukuran layar tertentu:

<div class="modal-dialog modal-fullscreen-sm-down">
<!-- Konten modal -->
</div>

Modal ini akan layar penuh pada layar kecil dan kecilnya.

Dan itu saja! Sekarang Anda dilengkapi pengetahuan untuk membuat modals yang menakjubkan menggunakan Bootstrap. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba konsep ini. Semoga sukses dalam coding Anda!

Metode Deskripsi
.modal(options) Mengaktifkan konten Anda sebagai modal. Menerima objek opsi opsional.
.modal('toggle') Secara manual menyalakan modal.
.modal('show') Secara manual membuka modal.
.modal('hide') Secara manual menyembunyikan modal.
.modal('handleUpdate') Secara manual menyesuaikan posisi modal jika tinggi modal berubah saat modalku buka (misalnya, jika scrollbar muncul).
.modal('dispose') Menghancurkan modal elemen.

Credits: Image by storyset