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-targetatribut. Meskipun tidak direkomendasikan dari sudut pandang semantik, Anda juga dapat menggunakan tautan dengan hrefatribut (dan a role="button"). Dalam kedua kasus, data-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.
<p>
  <a class="btn btn-primary" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
    Link with href
  </a>
  <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
    Button with data-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 .widthkelas 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.
<p>
  <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
    Toggle width collapse
  </button>
</p>
<div style="min-height: 120px;">
  <div class="collapse width" id="collapseWidthExample">
    <div class="card card-body" style="width: 320px;">
      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 JQuery di atribut hrefor -nya. data-targetBeberapa <button>atau <a>dapat menampilkan dan menyembunyikan elemen jika masing-masing mereferensikannya dengan atribut hrefornyadata-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.
<p>
  <a class="btn btn-primary" data-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
  <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
  <button class="btn btn-primary" type="button" data-toggle="collapse" data-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>

Contoh akordeon

Dengan menggunakan komponen kartu , Anda dapat memperluas perilaku penciutan default untuk membuat akordeon. Untuk mencapai gaya akordeon dengan benar, pastikan untuk menggunakannya .accordionsebagai pembungkus.

Beberapa konten placeholder untuk panel akordeon pertama. Panel ini ditampilkan secara default, berkat .showkelasnya.

Some placeholder content for the second accordion panel. This panel is hidden by default.

And lastly, the placeholder content for the third and final accordion panel. This panel is hidden by default.
<div class="accordion" id="accordionExample">
  <div class="card">
    <div class="card-header" id="headingOne">
      <h2 class="mb-0">
        <button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
          Collapsible Group Item #1
        </button>
      </h2>
    </div>

    <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
      <div class="card-body">
        Some placeholder content for the first accordion panel. This panel is shown by default, thanks to the <code>.show</code> class.
      </div>
    </div>
  </div>
  <div class="card">
    <div class="card-header" id="headingTwo">
      <h2 class="mb-0">
        <button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
          Collapsible Group Item #2
        </button>
      </h2>
    </div>
    <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
      <div class="card-body">
        Some placeholder content for the second accordion panel. This panel is hidden by default.
      </div>
    </div>
  </div>
  <div class="card">
    <div class="card-header" id="headingThree">
      <h2 class="mb-0">
        <button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
          Collapsible Group Item #3
        </button>
      </h2>
    </div>
    <div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
      <div class="card-body">
        And lastly, the placeholder content for the third and final accordion panel. This panel is hidden by default.
      </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-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 yang dijelaskan dalam pola akordeon Panduan Praktik Penulisan ARIA - Anda harus menyertakannya sendiri dengan JavaScript khusus.

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-toggle="collapse"dan a data-targetke elemen untuk secara otomatis menetapkan kontrol satu atau lebih elemen yang dapat diciutkan. Atribut data-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-parent="#selector". Lihat demo untuk melihat ini beraksi.

Melalui JavaScript

Aktifkan secara manual dengan:

$('.collapse').collapse()

Pilihan

Opsi dapat diteruskan melalui atribut data atau JavaScript. Untuk atribut data, tambahkan nama opsi ke data-, seperti pada data-parent="".

Nama Jenis Bawaan Keterangan
induk pemilih | objek jQuery | elemen DOM Salah 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.
beralih boolean BENAR 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 .

.collapse(options)

Mengaktifkan konten Anda sebagai elemen yang dapat diciutkan. Menerima opsi opsional object.

$('#myCollapsible').collapse({
  toggle: false
})

.collapse('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).

.collapse('show')

Menampilkan elemen yang dapat dilipat. Kembali ke pemanggil sebelum elemen yang dapat dilipat benar-benar ditampilkan (yaitu sebelum shown.bs.collapseperistiwa terjadi).

.collapse('hide')

Menyembunyikan elemen yang dapat dilipat. Kembali ke pemanggil sebelum elemen yang dapat diciutkan sebenarnya disembunyikan (yaitu sebelum hidden.bs.collapseperistiwa terjadi).

.collapse('dispose')

Menghancurkan keruntuhan elemen.

Acara

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

Jenis Acara Keterangan
show.bs.collapse Acara ini langsung aktif ketika showmetode instance dipanggil.
ditampilkan.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 hidemetode telah dipanggil.
hidden.bs.collapse Peristiwa ini dipicu ketika elemen penciutan telah disembunyikan dari pengguna (akan menunggu transisi CSS selesai).
$('#myCollapsible').on('hidden.bs.collapse', function () {
  // do something...
})