Alihkan overlay kontekstual untuk menampilkan daftar tautan dan lainnya dengan plugin dropdown Bootstrap.
Ringkasan
Dropdown adalah overlay kontekstual yang dapat dialihkan untuk menampilkan daftar tautan dan banyak lagi. Mereka dibuat interaktif dengan plugin JavaScript dropdown Bootstrap yang disertakan. Mereka dialihkan dengan mengklik, bukan dengan mengarahkan; ini adalah keputusan desain yang disengaja .
Dropdown dibuat di perpustakaan pihak ketiga, Popper.js , yang menyediakan deteksi posisi dinamis dan area pandang. Pastikan untuk menyertakan popper.min.js sebelum JavaScript Bootstrap atau gunakan bootstrap.bundle.min.js/ bootstrap.bundle.jsyang berisi Popper.js. Popper.js tidak digunakan untuk memposisikan dropdown di navbars meskipun karena pemosisian dinamis tidak diperlukan.
Jika Anda membuat JavaScript kami dari sumber, itu memerlukanutil.js .
Aksesibilitas
Standar WAI ARIA mendefinisikan role="menu"widget yang sebenarnya , tetapi ini khusus untuk menu seperti aplikasi yang memicu tindakan atau fungsi. Menu ARIA hanya dapat berisi item menu, item menu kotak centang, item menu tombol radio, grup tombol radio, dan submenu.
Dropdown Bootstrap, di sisi lain, dirancang untuk menjadi generik dan berlaku untuk berbagai situasi dan struktur markup. Misalnya, dimungkinkan untuk membuat dropdown yang berisi input tambahan dan kontrol formulir, seperti bidang pencarian atau formulir login. Untuk alasan ini, Bootstrap tidak mengharapkan (atau secara otomatis menambahkan) salah satu roledan aria-atribut yang diperlukan untuk menu ARIA yang sebenarnya. Penulis harus memasukkan atribut yang lebih spesifik ini sendiri.
Namun, Bootstrap menambahkan dukungan bawaan untuk sebagian besar interaksi menu keyboard standar, seperti kemampuan untuk berpindah melalui .dropdown-itemelemen individual menggunakan tombol kursor dan menutup menu dengan ESCtombol tersebut.
Contoh
Bungkus sakelar tarik-turun (tombol atau tautan Anda) dan menu tarik-turun di dalam .dropdown, atau elemen lain yang menyatakan position: relative;. Dropdown dapat dipicu dari <a>atau <button>elemen agar lebih sesuai dengan kebutuhan potensial Anda.
Tombol tunggal
Single apa pun .btndapat diubah menjadi sakelar tarik-turun dengan beberapa perubahan markup. Inilah cara Anda dapat membuatnya bekerja dengan salah satu <button>elemen:
Demikian pula, buat dropdown tombol terpisah dengan markup yang hampir sama dengan dropdown tombol tunggal, tetapi dengan penambahan .dropdown-toggle-splitspasi yang tepat di sekitar tanda sisipan dropdown.
Kami menggunakan kelas ekstra ini untuk mengurangi horizontal paddingdi kedua sisi tanda sisipan sebesar 25% dan menghapus margin-leftyang ditambahkan untuk dropdown tombol biasa. Perubahan ekstra itu menjaga tanda sisipan tetap di tengah tombol split dan memberikan area hit berukuran lebih tepat di sebelah tombol utama.
Secara historis, konten menu tarik -turun harus berupa tautan, tetapi tidak lagi dengan v4. Sekarang Anda secara opsional dapat menggunakan <button>elemen di dropdown Anda, bukan hanya <a>s.
Anda juga dapat membuat item tarik-turun non-interaktif dengan .dropdown-item-text. Jangan ragu untuk bergaya lebih jauh dengan CSS khusus atau utilitas teks.
Secara default, menu dropdown secara otomatis diposisikan 100% dari atas dan di sepanjang sisi kiri induknya. Tambahkan .dropdown-menu-rightke a .dropdown-menuuntuk meratakan kanan menu tarik-turun.
Perhatian! Dropdown diposisikan berkat Popper.js (kecuali jika terdapat dalam navbar).
Penyelarasan responsif
Jika Anda ingin menggunakan perataan responsif, nonaktifkan pemosisian dinamis dengan menambahkan data-display="static"atribut dan gunakan kelas variasi responsif.
Untuk menyelaraskan menu tarik-turun ke kanan dengan titik henti sementara yang diberikan atau lebih besar, tambahkan.dropdown-menu{-sm|-md|-lg|-xl}-right .
Untuk menyelaraskan kiri menu tarik-turun dengan titik henti sementara yang diberikan atau lebih besar, tambahkan .dropdown-menu-rightdan .dropdown-menu{-sm|-md|-lg|-xl}-left.
Perhatikan bahwa Anda tidak perlu menambahkan data-display="static"atribut ke tombol dropdown di navbars, karena Popper.js tidak digunakan di navbars.
konten menu
Header
Tambahkan tajuk untuk memberi label pada bagian tindakan di menu tarik-turun mana pun.
Tempatkan teks bentuk bebas apa pun dalam menu tarik-turun dengan teks dan gunakan utilitas spasi . Perhatikan bahwa Anda mungkin memerlukan gaya ukuran tambahan untuk membatasi lebar menu.
Beberapa contoh teks yang mengalir bebas dalam menu tarik-turun.
Dan ini lebih banyak contoh teks.
Formulir
Letakkan formulir di dalam menu tarik-turun, atau buat menjadi menu tarik-turun, dan gunakan utilitas margin atau padding untuk memberikan ruang negatif yang Anda butuhkan.
Melalui atribut data atau JavaScript, plugin dropdown mengaktifkan konten tersembunyi (menu dropdown) dengan mengaktifkan .showkelas pada item daftar induk. Atribut data-toggle="dropdown"ini diandalkan untuk menutup menu tarik-turun di tingkat aplikasi, jadi sebaiknya selalu menggunakannya.
Pada perangkat yang mendukung sentuhan, membuka tarik-turun menambahkan penangan kosong ( $.noop) ke turunan langsung dari elemen. Peretasan yang diakui jelek ini diperlukan untuk mengatasi kekhasan dalam delegasi acara iOS , yang jika tidak, akan mencegah ketukan di mana pun di luar dropdown memicu kode yang menutup dropdown. Setelah dropdown ditutup, penangan kosong tambahan ini akan dihapus.mouseover<body>mouseover
Melalui atribut data
Tambahkan data-toggle="dropdown"ke tautan atau tombol untuk mengaktifkan tarik-turun.
Melalui JavaScript
Panggil dropdown melalui JavaScript:
data-toggle="dropdown"masih diperlukan
Terlepas dari apakah Anda memanggil dropdown Anda melalui JavaScript atau sebagai gantinya menggunakan data-api, data-toggle="dropdown"selalu harus ada di elemen pemicu dropdown.
Pilihan
Opsi dapat diteruskan melalui atribut data atau JavaScript. Untuk atribut data, tambahkan nama opsi ke data-, seperti pada data-offset="".
Nama
Jenis
Bawaan
Keterangan
mengimbangi
nomor | string | fungsi
0
Offset dari dropdown relatif terhadap targetnya.
Ketika suatu fungsi digunakan untuk menentukan offset, itu dipanggil dengan objek yang berisi data offset sebagai argumen pertamanya. Fungsi harus mengembalikan objek dengan struktur yang sama. Node DOM elemen pemicu dilewatkan sebagai argumen kedua.
Untuk informasi lebih lanjut, lihat dokumen offset Popper.js .
Batas batasan overflow dari menu dropdown. Menerima nilai 'viewport', 'window', 'scrollParent', atau referensi HTMLElement (khusus JavaScript). Untuk informasi lebih lanjut, lihat dokumen preventOverflow Popper.js .
Perhatikan bila boundarydisetel ke nilai apa pun selain 'scrollParent', gaya position: staticditerapkan ke .dropdownpenampung.
Metode
metode
Keterangan
$().dropdown('toggle')
Mengalihkan menu tarik-turun dari bilah navigasi atau navigasi tab tertentu.
$().dropdown('show')
Menampilkan menu tarik-turun dari bilah navigasi atau navigasi tab tertentu.
$().dropdown('hide')
Menyembunyikan menu tarik-turun dari bilah navigasi atau navigasi tab tertentu.
$().dropdown('update')
Memperbarui posisi dropdown elemen.
$().dropdown('dispose')
Menghancurkan dropdown elemen.
Acara
Semua peristiwa dropdown dipicu pada .dropdown-menuelemen induk 's dan memiliki relatedTargetproperti, yang nilainya adalah elemen jangkar toggling. hide.bs.dropdowndan hidden.bs.dropdownevent memiliki clickEventproperti (hanya jika tipe event aslinya adalah click) yang berisi Event Object untuk event klik.
Peristiwa
Keterangan
show.bs.dropdown
Acara ini langsung aktif ketika metode show instance dipanggil.
shown.bs.dropdown
Acara ini diaktifkan ketika dropdown telah dibuat terlihat oleh pengguna (akan menunggu transisi CSS, selesai).
hide.bs.dropdown
Acara ini segera diaktifkan ketika metode instance sembunyikan telah dipanggil.
hidden.bs.dropdown
Acara ini diaktifkan ketika dropdown telah selesai disembunyikan dari pengguna (akan menunggu transisi CSS, selesai).