Dropdown
Alihkan overlay kontekstual untuk menampilkan daftar tautan dan lainnya dengan plugin dropdown Bootstrap.
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.js
yang 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
.
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 role
dan 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-item
elemen individual menggunakan tombol kursor dan menutup menu dengan ESCtombol tersebut.
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.
Single apa pun .btn
dapat diubah menjadi sakelar tarik-turun dengan beberapa perubahan markup. Inilah cara Anda dapat membuatnya bekerja dengan salah satu <button>
elemen:
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown button
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
Dan dengan <a>
elemen:
<div class="dropdown show">
<a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown link
</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
Bagian terbaiknya adalah Anda juga dapat melakukan ini dengan varian tombol apa pun:
Demikian pula, buat dropdown tombol terpisah dengan markup yang hampir sama dengan dropdown tombol tunggal, tetapi dengan penambahan .dropdown-toggle-split
spasi yang tepat di sekitar tanda sisipan dropdown.
Kami menggunakan kelas ekstra ini untuk mengurangi horizontal padding
di kedua sisi tanda sisipan sebesar 25% dan menghapus margin-left
yang ditambahkan untuk dropdown tombol biasa. Perubahan ekstra tersebut menjaga tanda sisipan tetap di tengah tombol split dan memberikan area hit berukuran lebih tepat di sebelah tombol utama.
Dropdown tombol berfungsi dengan tombol dari semua ukuran, termasuk tombol dropdown default dan split.
Picu menu tarik-turun di atas elemen dengan menambahkan .dropup
ke elemen induk.
Picu menu tarik-turun di sebelah kanan elemen dengan menambahkan .dropright
ke elemen induk.
Picu menu tarik-turun di sebelah kiri elemen dengan menambahkan .dropleft
ke elemen induk.
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.
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenu2">
<button class="dropdown-item" type="button">Action</button>
<button class="dropdown-item" type="button">Another action</button>
<button class="dropdown-item" type="button">Something else here</button>
</div>
</div>
Secara default, menu dropdown secara otomatis diposisikan 100% dari atas dan di sepanjang sisi kiri induknya. Tambahkan .dropdown-menu-right
ke a .dropdown-menu
untuk meratakan kanan menu tarik-turun.
Perhatian! Dropdown diposisikan berkat Popper.js (kecuali jika terdapat dalam navbar).
<div class="btn-group">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Right-aligned menu
</button>
<div class="dropdown-menu dropdown-menu-right">
<button class="dropdown-item" type="button">Action</button>
<button class="dropdown-item" type="button">Another action</button>
<button class="dropdown-item" type="button">Something else here</button>
</div>
</div>
Tambahkan tajuk untuk memberi label pada bagian tindakan di menu tarik-turun mana pun.
<div class="dropdown-menu">
<h6 class="dropdown-header">Dropdown header</h6>
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
</div>
Pisahkan kelompok item menu terkait dengan pembagi.
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Separated link</a>
</div>
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.
<div class="dropdown-menu">
<form class="px-4 py-3">
<div class="form-group">
<label for="exampleDropdownFormEmail1">Email address</label>
<input type="email" class="form-control" id="exampleDropdownFormEmail1" placeholder="[email protected]">
</div>
<div class="form-group">
<label for="exampleDropdownFormPassword1">Password</label>
<input type="password" class="form-control" id="exampleDropdownFormPassword1" placeholder="Password">
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="dropdownCheck">
<label class="form-check-label" for="dropdownCheck">
Remember me
</label>
</div>
<button type="submit" class="btn btn-primary">Sign in</button>
</form>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">New around here? Sign up</a>
<a class="dropdown-item" href="#">Forgot password?</a>
</div>
<form class="dropdown-menu p-4">
<div class="form-group">
<label for="exampleDropdownFormEmail2">Email address</label>
<input type="email" class="form-control" id="exampleDropdownFormEmail2" placeholder="[email protected]">
</div>
<div class="form-group">
<label for="exampleDropdownFormPassword2">Password</label>
<input type="password" class="form-control" id="exampleDropdownFormPassword2" placeholder="Password">
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="dropdownCheck2">
<label class="form-check-label" for="dropdownCheck2">
Remember me
</label>
</div>
<button type="submit" class="btn btn-primary">Sign in</button>
</form>
Tambahkan .active
ke item di dropdown untuk menatanya sebagai aktif .
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Regular link</a>
<a class="dropdown-item active" href="#">Active link</a>
<a class="dropdown-item" href="#">Another link</a>
</div>
Tambahkan .disabled
ke item di tarik-turun untuk menatanya sebagai dinonaktifkan .
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Regular link</a>
<a class="dropdown-item disabled" href="#">Disabled link</a>
<a class="dropdown-item" href="#">Another link</a>
</div>
Melalui atribut data atau JavaScript, plugin dropdown mengaktifkan konten tersembunyi (menu dropdown) dengan mengaktifkan .show
kelas pada item daftar induk. Atribut data-toggle="dropdown"
ini diandalkan untuk menutup menu dropdown di level aplikasi, jadi sebaiknya selalu gunakan itu.
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
Tambahkan data-toggle="dropdown"
ke tautan atau tombol untuk mengaktifkan tarik-turun.
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.
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. Untuk informasi lebih lanjut, lihat dokumen offset Popper.js . |
Balik | boolean | BENAR | Izinkan Dropdown untuk membalik jika terjadi tumpang tindih pada elemen referensi. Untuk informasi lebih lanjut, lihat flip docs Popper.js . |
batas | string | elemen | 'scrollInduk' | 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 boundary
disetel ke nilai apa pun selain 'scrollParent'
, gaya position: static
diterapkan ke .dropdown
penampung.
metode | Keterangan |
---|---|
$().dropdown('toggle') |
Mengalihkan menu tarik-turun dari bilah navigasi atau navigasi tab tertentu. |
$().dropdown('update') |
Memperbarui posisi dropdown elemen. |
$().dropdown('dispose') |
Menghancurkan dropdown elemen. |
Semua peristiwa dropdown dipicu pada .dropdown-menu
elemen induk 's dan memiliki relatedTarget
properti, yang nilainya adalah elemen jangkar toggling.
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 dipecat segera ketika metode contoh sembunyikan telah dipanggil. |
hidden.bs.dropdown |
Acara ini dipicu ketika dropdown telah selesai disembunyikan dari pengguna (akan menunggu transisi CSS, selesai). |