Lewati ke konten utama Lewati ke navigasi dokumen
Check

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 heightdari nilai saat ini ke 0. Mengingat bagaimana CSS menangani animasi, Anda tidak dapat menggunakan paddingelemen .collapse. Sebagai gantinya, gunakan kelas sebagai elemen pembungkus independen.

Efek animasi komponen ini bergantung pada prefers-reduced-motionkueri media. Lihat bagian pengurangan gerakan pada dokumentasi aksesibilitas kami .

Contoh

Klik tombol di bawah ini untuk menampilkan dan menyembunyikan elemen lain melalui perubahan kelas:

  • .collapsemenyembunyikan konten
  • .collapsingditerapkan selama transisi
  • .collapse.showmenunjukkan konten

Umumnya, kami menyarankan untuk menggunakan tombol dengan data-bs-targetatribut. Meskipun tidak direkomendasikan dari sudut pandang semantik, Anda juga dapat menggunakan tautan dengan hrefatribut (dan a role="button"). Dalam kedua kasus, data-bs-toggle="collapse"diperlukan.

Some placeholder content for the collapse component. This panel is hidden by default but revealed when the user activates the relevant trigger.
html
<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-horizontalkelas pengubah untuk mentransisikan widthalih-alih heightdan atur a widthpada elemen turunan langsung. Jangan ragu untuk menulis Sass kustom Anda sendiri, gunakan gaya sebaris, atau gunakan utilitas lebar kami .

Harap perhatikan bahwa meskipun contoh di bawah ini memiliki min-heightseperangkat untuk menghindari pengecatan ulang yang berlebihan dalam dokumen kami, ini tidak secara eksplisit diperlukan. Hanya widthelemen anak on yang diperlukan.

This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
html
<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 hrefor -nya. data-bs-targetBeberapa <button>atau <a>dapat menampilkan dan menyembunyikan elemen jika masing-masing mereferensikannya dengan atribut hrefornyadata-bs-target

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.
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.
html
<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-expandedke 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 showkelas, 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-targetatribut menunjuk ke idpemilih – Anda harus menambahkan aria-controlsatribut ke elemen kontrol, yang berisi idelemen 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 Panduan Praktik Penulisan ARIA - 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.scsskarena 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:

  • .collapsemenyembunyikan isinya
  • .collapse.showmenunjukkan isinya
  • .collapsingditambahkan 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-targetke elemen untuk secara otomatis menetapkan kontrol satu atau lebih elemen yang dapat diciutkan. Atribut data-bs-targetmenerima pemilih CSS untuk menerapkan penciutan. Pastikan untuk menambahkan kelas collapseke 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:

const collapseElementList = document.querySelectorAll('.collapse')
const collapseList = [...collapseElementList].map(collapseEl => new bootstrap.Collapse(collapseEl))

Pilihan

Karena opsi dapat diteruskan melalui atribut data atau JavaScript, Anda dapat menambahkan nama opsi ke data-bs-, seperti pada data-bs-animation="{value}". Pastikan untuk mengubah jenis huruf dari nama opsi dari “ camelCase ” menjadi “ kebab-case ” saat meneruskan opsi melalui atribut data. Misalnya, gunakan data-bs-custom-class="beautifier"alih-alih data-bs-customClass="beautifier".

Pada Bootstrap 5.2.0, semua komponen mendukung atribut data cadangan eksperimentaldata-bs-config yang dapat menampung konfigurasi komponen sederhana sebagai string JSON. Ketika suatu elemen memiliki data-bs-config='{"delay":0, "title":123}'dan data-bs-title="456"atribut, nilai akhir titleakan menjadi 456dan atribut data yang terpisah akan menimpa nilai yang diberikan pada data-bs-config. Selain itu, atribut data yang ada dapat menampung nilai JSON seperti data-bs-delay='{"show":0,"hide":150}'.

Nama Jenis Bawaan Keterangan
parent pemilih, elemen DOM null 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 cardkelasnya). Atribut harus ditetapkan pada area target yang dapat dilipat.
toggle boolean true Mengalihkan elemen yang dapat diciutkan pada pemanggilan.

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:

const bsCollapse = new bootstrap.Collapse('#myCollapse', {
  toggle: false
})
metode Keterangan
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).
hide Menyembunyikan elemen yang dapat dilipat. Kembali ke pemanggil sebelum elemen yang dapat diciutkan sebenarnya disembunyikan (misalnya, sebelum hidden.bs.collapseperistiwa terjadi).
show Menampilkan elemen yang dapat dilipat. Kembali ke pemanggil sebelum elemen yang dapat diciutkan benar-benar ditampilkan (misalnya, sebelum shown.bs.collapseperistiwa terjadi).
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.collapseatau hidden.bs.collapseperistiwa terjadi).

Acara

Kelas keruntuhan Bootstrap memperlihatkan beberapa peristiwa untuk menghubungkan ke fungsionalitas keruntuhan.

Jenis acara Keterangan
hide.bs.collapse Acara ini dipecat segera ketika hidemetode telah dipanggil.
hidden.bs.collapse Peristiwa ini dipicu ketika elemen penciutan telah disembunyikan dari pengguna (akan menunggu transisi CSS selesai).
show.bs.collapse Acara ini langsung aktif ketika showmetode instance dipanggil.
shown.bs.collapse Peristiwa ini dipicu ketika elemen penciutan telah dibuat terlihat oleh pengguna (akan menunggu transisi CSS selesai).
const myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', event => {
  // do something...
})