Jatuh
Alihkan visibilitas konten di seluruh proyek Anda dengan beberapa kelas dan plugin JavaScript kami.
Bagaimana itu bekerja
Plugin JavaScript runtuh digunakan untuk menampilkan dan menyembunyikan konten. Tombol atau jangkar digunakan sebagai pemicu yang dipetakan ke elemen tertentu yang Anda aktifkan. Menciutkan elemen akan menganimasikan height
dari nilai saat ini ke 0
. Mengingat bagaimana CSS menangani animasi, Anda tidak dapat menggunakan padding
elemen .collapse
. Sebagai gantinya, gunakan kelas sebagai elemen pembungkus independen.
prefers-reduced-motion
kueri media. Lihat bagian
pengurangan gerakan pada dokumentasi aksesibilitas kami .
Contoh
Klik tombol di bawah ini untuk menampilkan dan menyembunyikan elemen lain melalui perubahan kelas:
.collapse
menyembunyikan konten.collapsing
diterapkan selama transisi.collapse.show
menunjukkan konten
Umumnya, kami menyarankan untuk menggunakan tombol dengan data-bs-target
atribut. Meskipun tidak direkomendasikan dari sudut pandang semantik, Anda juga dapat menggunakan tautan dengan href
atribut (dan a role="button"
). Dalam kedua kasus, data-bs-toggle="collapse"
diperlukan.
<p>
<a class="btn btn-primary" data-bs-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
Link with href
</a>
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
Button with data-bs-target
</button>
</p>
<div class="collapse" id="collapseExample">
<div class="card card-body">
Some placeholder content for the collapse component. This panel is hidden by default but revealed when the user activates the relevant trigger.
</div>
</div>
Horisontal
Plugin keruntuhan juga mendukung penciutan horizontal. Tambahkan .collapse-horizontal
kelas pengubah untuk mentransisikan width
alih-alih height
dan atur a width
pada elemen turunan langsung. Jangan ragu untuk menulis Sass kustom Anda sendiri, gunakan gaya sebaris, atau gunakan utilitas lebar kami .
min-height
seperangkat untuk menghindari pengecatan ulang yang berlebihan dalam dokumen kami, ini tidak secara eksplisit diperlukan.
Hanya width
elemen anak on yang diperlukan.
<p>
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
Toggle width collapse
</button>
</p>
<div style="min-height: 120px;">
<div class="collapse collapse-horizontal" id="collapseWidthExample">
<div class="card card-body" style="width: 300px;">
This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
</div>
</div>
</div>
Beberapa target
A <button>
or <a>
dapat menampilkan dan menyembunyikan beberapa elemen dengan mereferensikannya dengan pemilih di atribut href
or -nya. data-bs-target
Beberapa <button>
atau <a>
dapat menampilkan dan menyembunyikan elemen jika masing-masing mereferensikannya dengan atribut href
ornyadata-bs-target
<p>
<a class="btn btn-primary" data-bs-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target=".multi-collapse" aria-expanded="false" aria-controls="multiCollapseExample1 multiCollapseExample2">Toggle both elements</button>
</p>
<div class="row">
<div class="col">
<div class="collapse multi-collapse" id="multiCollapseExample1">
<div class="card card-body">
Some placeholder content for the first collapse component of this multi-collapse example. This panel is hidden by default but revealed when the user activates the relevant trigger.
</div>
</div>
</div>
<div class="col">
<div class="collapse multi-collapse" id="multiCollapseExample2">
<div class="card card-body">
Some placeholder content for the second collapse component of this multi-collapse example. This panel is hidden by default but revealed when the user activates the relevant trigger.
</div>
</div>
</div>
</div>
Aksesibilitas
Pastikan untuk menambahkan aria-expanded
ke elemen kontrol. Atribut ini secara eksplisit menyampaikan status elemen yang dapat diciutkan saat ini yang terkait dengan kontrol ke pembaca layar dan teknologi bantu serupa. Jika elemen yang dapat diciutkan ditutup secara default, atribut pada elemen kontrol harus memiliki nilai aria-expanded="false"
. Jika Anda telah menyetel elemen yang dapat diciutkan menjadi terbuka secara default menggunakan show
kelas, atur aria-expanded="true"
pada kontrol sebagai gantinya. Plugin akan secara otomatis mengaktifkan atribut ini pada kontrol berdasarkan apakah elemen yang dapat dilipat telah dibuka atau ditutup (melalui JavaScript, atau karena pengguna memicu elemen kontrol lain yang juga terikat ke elemen yang dapat dilipat yang sama). Jika elemen HTML elemen kontrol bukan tombol (mis., an <a>
atau <div>
), atributrole="button"
harus ditambahkan ke elemen.
Jika elemen kontrol Anda menargetkan satu elemen yang dapat dilipat – yaitu data-bs-target
atribut menunjuk ke id
pemilih – Anda harus menambahkan aria-controls
atribut ke elemen kontrol, yang berisi id
elemen yang dapat dilipat. Pembaca layar modern dan teknologi bantu serupa menggunakan atribut ini untuk memberi pengguna pintasan tambahan untuk menavigasi langsung ke elemen yang dapat diciutkan itu sendiri.
Perhatikan bahwa implementasi Bootstrap saat ini tidak mencakup berbagai interaksi keyboard opsional yang dijelaskan dalam pola akordeon WAI-ARIA Authoring Practices 1.1 - Anda harus menyertakannya sendiri dengan JavaScript khusus.
Kelancangan
Variabel
$transition-collapse: height .35s ease;
$transition-collapse-width: width .35s ease;
Kelas
Ciutkan kelas transisi dapat ditemukan scss/_transitions.scss
karena ini dibagi di beberapa komponen (runtuh dan akordeon).
.collapse {
&:not(.show) {
display: none;
}
}
.collapsing {
height: 0;
overflow: hidden;
@include transition($transition-collapse);
&.collapse-horizontal {
width: 0;
height: auto;
@include transition($transition-collapse-width);
}
}
Penggunaan
Plugin collapse menggunakan beberapa kelas untuk menangani pekerjaan berat:
.collapse
menyembunyikan isinya.collapse.show
menunjukkan isinya.collapsing
ditambahkan saat transisi dimulai, dan dihapus saat transisi selesai
Kelas-kelas ini dapat ditemukan di _transitions.scss
.
Melalui atribut data
Cukup tambahkan data-bs-toggle="collapse"
dan a data-bs-target
ke elemen untuk secara otomatis menetapkan kontrol satu atau lebih elemen yang dapat diciutkan. Atribut data-bs-target
menerima pemilih CSS untuk menerapkan penciutan. Pastikan untuk menambahkan kelas collapse
ke elemen yang dapat diciutkan. Jika Anda ingin default terbuka, tambahkan kelas tambahan show
.
Untuk menambahkan manajemen grup seperti akordeon ke area yang dapat diciutkan, tambahkan atribut data data-bs-parent="#selector"
. Lihat halaman akordeon untuk informasi lebih lanjut.
Melalui JavaScript
Aktifkan secara manual dengan:
var collapseElementList = [].slice.call(document.querySelectorAll('.collapse'))
var collapseList = collapseElementList.map(function (collapseEl) {
return new bootstrap.Collapse(collapseEl)
})
Pilihan
Opsi dapat diteruskan melalui atribut data atau JavaScript. Untuk atribut data, tambahkan nama opsi ke data-bs-
, seperti pada data-bs-parent=""
.
Nama | Jenis | Bawaan | Keterangan |
---|---|---|---|
parent |
pemilih | objek jQuery | elemen DOM | false |
Jika induk disediakan, maka semua elemen yang dapat diciutkan di bawah induk yang ditentukan akan ditutup saat item yang dapat dilipat ini ditampilkan. (mirip dengan perilaku akordeon tradisional - ini tergantung pada card kelasnya). Atribut harus ditetapkan pada area target yang dapat dilipat. |
toggle |
boolean | true |
Mengaktifkan elemen yang dapat diciutkan pada doa |
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 .
Lihat dokumentasi JavaScript kami untuk informasi lebih lanjut .
Mengaktifkan konten Anda sebagai elemen yang dapat diciutkan. Menerima opsi opsional object
.
Anda dapat membuat instance collapse dengan konstruktor, misalnya:
var myCollapse = document.getElementById('myCollapse')
var bsCollapse = new bootstrap.Collapse(myCollapse, {
toggle: false
})
metode | Keterangan |
---|---|
toggle |
Mengalihkan elemen yang dapat diciutkan ke ditampilkan atau disembunyikan. Kembali ke pemanggil sebelum elemen yang dapat dilipat benar-benar ditampilkan atau disembunyikan (yaitu sebelum shown.bs.collapse atau hidden.bs.collapse peristiwa terjadi). |
show |
Menampilkan elemen yang dapat dilipat. Kembali ke pemanggil sebelum elemen yang dapat diciutkan benar-benar ditampilkan (misalnya, sebelum shown.bs.collapse peristiwa terjadi). |
hide |
Menyembunyikan elemen yang dapat dilipat. Kembali ke pemanggil sebelum elemen yang dapat diciutkan sebenarnya disembunyikan (misalnya, sebelum hidden.bs.collapse peristiwa terjadi). |
dispose |
Menghancurkan keruntuhan elemen. (Menghapus data yang tersimpan pada elemen DOM) |
getInstance |
Metode statis yang memungkinkan Anda untuk mendapatkan instance keruntuhan yang terkait dengan elemen DOM, Anda dapat menggunakannya seperti ini:bootstrap.Collapse.getInstance(element) |
getOrCreateInstance |
Metode statis yang mengembalikan instance keruntuhan yang terkait dengan elemen DOM atau membuat yang baru jika tidak diinisialisasi. Anda dapat menggunakannya seperti ini:bootstrap.Collapse.getOrCreateInstance(element) |
Acara
Kelas keruntuhan Bootstrap memperlihatkan beberapa peristiwa untuk menghubungkan ke fungsionalitas keruntuhan.
Jenis acara | Keterangan |
---|---|
show.bs.collapse |
Acara ini langsung aktif ketika show metode instance dipanggil. |
shown.bs.collapse |
Peristiwa ini dipicu ketika elemen penciutan telah dibuat terlihat oleh pengguna (akan menunggu transisi CSS selesai). |
hide.bs.collapse |
Acara ini dipecat segera ketika hide metode telah dipanggil. |
hidden.bs.collapse |
Peristiwa ini dipicu ketika elemen penciutan telah disembunyikan dari pengguna (akan menunggu transisi CSS selesai). |
var myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', function () {
// do something...
})