Ana içeriğe geç Dokümanlar navigasyonuna atla
Check
in English

Yıkılmak

Birkaç sınıf ve JavaScript eklentilerimizle projenizdeki içeriğin görünürlüğünü değiştirin.

Nasıl çalışır

Daraltma JavaScript eklentisi, içeriği göstermek ve gizlemek için kullanılır. Düğmeler veya çapalar, geçiş yaptığınız belirli öğelerle eşlenen tetikleyiciler olarak kullanılır. Bir öğeyi daraltmak height, mevcut değerinden 'a animasyon uygulayacaktır 0. paddingCSS'nin animasyonları nasıl işlediği göz önüne alındığında , bir .collapseöğe üzerinde kullanamazsınız . Bunun yerine, sınıfı bağımsız bir sarma öğesi olarak kullanın.

Bu bileşenin animasyon efekti prefers-reduced-motionortam sorgusuna bağlıdır. Erişilebilirlik belgelerimizin azaltılmış hareket bölümüne bakın .

Örnek

Sınıf değişiklikleri yoluyla başka bir öğeyi göstermek ve gizlemek için aşağıdaki düğmeleri tıklayın:

  • .collapseiçeriği gizler
  • .collapsinggeçişler sırasında uygulanır
  • .collapse.showiçeriği gösterir

data-bs-targetGenel olarak, özniteliği olan bir düğme kullanmanızı öneririz . hrefAnlamsal bir bakış açısından önerilmese de, öznitelik (ve a ) içeren bir bağlantı da kullanabilirsiniz role="button". Her iki durumda data-bs-toggle="collapse"da gereklidir.

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>

Yatay

Daraltma eklentisi ayrıca yatay çökmeyi de destekler. Bunun yerine .collapse-horizontalgeçiş yapmak için değiştirici sınıfını ekleyin ve hemen alt öğeye bir a ayarlayın . Kendi özel Sass'ınızı yazmaktan, satır içi stilleri kullanmaktan veya genişlik yardımcı programlarımızı kullanmaktan çekinmeyin .widthheightwidth

min-heightAşağıdaki örnekte , dokümanlarımızda aşırı yeniden boyamayı önlemek için bir set olmasına rağmen, bunun açıkça gerekli olmadığını lütfen unutmayın . Yalnızca widthon alt öğe gereklidir.

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>

Birden çok hedef

A <button>veya , veya özniteliğinde <a>bir seçiciyle bunlara başvurarak birden çok öğeyi gösterebilir ve gizleyebilir . Birden çok veya bir öğeyi her biri veya özniteliği ile referans alıyorsa gösterip gizleyebilirhrefdata-bs-target<button><a>hrefdata-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>

Ulaşılabilirlik

aria-expandedKontrol öğesine eklediğinizden emin olun . Bu öznitelik, kontrole bağlı daraltılabilir öğenin mevcut durumunu ekran okuyuculara ve benzer yardımcı teknolojilere açıkça iletir. Daraltılabilir öğe varsayılan olarak kapalıysa, kontrol öğesindeki özniteliğin değeri olmalıdır aria-expanded="false". showSınıfı kullanarak daraltılabilir öğeyi varsayılan olarak açık olacak şekilde ayarladıysanız aria-expanded="true", bunun yerine denetimde ayarlayın. Eklenti, daraltılabilir öğenin açılıp kapanmadığına (JavaScript aracılığıyla veya kullanıcının aynı daraltılabilir öğeye bağlı başka bir kontrol öğesini tetiklemesi nedeniyle) bağlı olarak kontrolde bu özniteliği otomatik olarak değiştirir. Kontrol öğesinin HTML öğesi bir düğme değilse (örneğin, an <a>veya <div>), öznitelikrole="button"elemana eklenmelidir.

Kontrol öğeniz tek bir daraltılabilir öğeyi hedefliyorsa - yani data-bs-targetnitelik bir seçiciye işaret ediyorsa - niteliği, daraltılabilir öğenin öğesini içeren kontrol öğesine ideklemelisiniz . Modern ekran okuyucular ve benzer yardımcı teknolojiler, kullanıcılara doğrudan daraltılabilir öğeye gitmeleri için ek kısayollar sağlamak için bu özelliği kullanır.aria-controlsid

Bootstrap'in mevcut uygulamasının ARIA Yazma Uygulamaları Kılavuzu akordeon modelinde açıklanan çeşitli isteğe bağlı klavye etkileşimlerini kapsamadığını unutmayın ; bunları özel JavaScript'e kendiniz eklemeniz gerekecektir.

küstah

Değişkenler

$transition-collapse:         height .35s ease;
$transition-collapse-width:   width .35s ease;

sınıflar

scss/_transitions.scssDaraltma geçiş sınıfları, bunlar birden çok bileşen (daralma ve akordeon) arasında paylaşıldıkları için bulunabilir .

.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);
  }
}

kullanım

Daraltma eklentisi, ağır kaldırmayı halletmek için birkaç sınıf kullanır:

  • .collapseiçeriği gizler
  • .collapse.showiçeriği gösterir
  • .collapsinggeçiş başladığında eklenir ve bittiğinde kaldırılır

Bu sınıflar adresinde bulunabilir _transitions.scss.

Veri öznitelikleri aracılığıyla

Bir veya daha fazla daraltılabilir öğenin kontrolünü otomatik olarak atamak için öğeye data-bs-toggle="collapse"ve a ekleyin . data-bs-targetNitelik data-bs-target, daraltmanın uygulanacağı bir CSS seçiciyi kabul eder. collapseSınıfı daraltılabilir öğeye eklediğinizden emin olun . Varsayılan olarak açılmasını istiyorsanız, ek sınıfı ekleyin show.

Daraltılabilir bir alana akordeon benzeri grup yönetimi eklemek için data niteliğini ekleyin data-bs-parent="#selector". Daha fazla bilgi için akordeon sayfasına bakın.

JavaScript aracılığıyla

Şunlarla manuel olarak etkinleştirin:

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

Seçenekler

Seçenekler veri öznitelikleri veya JavaScript aracılığıyla iletilebildiğinden data-bs-, örneğinde olduğu gibi öğesine bir seçenek adı ekleyebilirsiniz data-bs-animation="{value}". Seçenekleri veri öznitelikleri üzerinden geçirirken , seçenek adının “ camelCase ” yerine “ kebab-case ” olarak değiştirildiğinden emin olun. Örneğin, data-bs-custom-class="beautifier"yerine kullanın data-bs-customClass="beautifier".

Bootstrap 5.2.0'dan itibaren, tüm bileşenler , bir JSON dizesi olarak basit bileşen yapılandırmasını barındırabilen deneysel bir ayrılmış veri özniteliğini destekler. data-bs-configBir öğe data-bs-config='{"delay":0, "title":123}'ve data-bs-title="456"özniteliklere sahip olduğunda, nihai titledeğer olacak 456ve ayrı veri öznitelikleri üzerinde verilen değerleri geçersiz kılacaktır data-bs-config. Ek olarak, mevcut veri öznitelikleri, gibi JSON değerlerini barındırabilir data-bs-delay='{"show":0,"hide":150}'.

İsim Tip Varsayılan Tanım
parent seçici, DOM öğesi null Üst öğe sağlanmışsa, bu daraltılabilir öğe gösterildiğinde belirtilen üst öğenin altındaki tüm daraltılabilir öğeler kapatılacaktır. (geleneksel akordeon davranışına benzer - bu, cardsınıfa bağlıdır). Nitelik, hedef daraltılabilir alanda ayarlanmalıdır.
toggle boole true Çağrı sırasında daraltılabilir öğeyi değiştirir.

yöntemler

Asenkron yöntemler ve geçişler

Tüm API yöntemleri eşzamansızdır ve bir geçiş başlatır . Geçiş başlar başlamaz ancak bitmeden arayan kişiye geri dönerler . Ek olarak, geçiş yapan bir bileşen üzerindeki bir yöntem çağrısı yoksayılacaktır .

Daha fazla bilgi için JavaScript belgelerimize bakın .

İçeriğinizi daraltılabilir bir öğe olarak etkinleştirir. İsteğe bağlı seçenekleri kabul eder object.

Oluşturucu ile bir daraltma örneği oluşturabilirsiniz, örneğin:

const bsCollapse = new bootstrap.Collapse('#myCollapse', {
  toggle: false
})
Yöntem Tanım
dispose Bir öğenin çöküşünü yok eder. (DOM öğesinde depolanan verileri kaldırır)
getInstance Bir DOM öğesiyle ilişkili daraltma örneğini elde etmenizi sağlayan statik yöntem, bunu şu şekilde kullanabilirsiniz: bootstrap.Collapse.getInstance(element).
getOrCreateInstance Bir DOM öğesiyle ilişkili bir daraltma örneği döndüren veya başlatılmamış olması durumunda yeni bir tane oluşturan statik yöntem. Bunu şu şekilde kullanabilirsiniz: bootstrap.Collapse.getOrCreateInstance(element).
hide Bir daraltılabilir öğeyi gizler. Arayana, daraltılabilir öğe fiilen gizlenmeden önce döner (örneğin, hidden.bs.collapseolay meydana gelmeden önce).
show Katlanabilir bir öğe gösterir. Katlanabilir öğe fiilen gösterilmeden önce (örneğin, shown.bs.collapseolay meydana gelmeden önce) arayana geri döner.
toggle Daraltılabilir bir öğeyi gösterilen veya gizli olarak değiştirir. Arayana daraltılabilir öğe fiilen gösterilmeden veya gizlenmeden önce (yani shown.bs.collapseveya hidden.bs.collapseolayı gerçekleşmeden önce) döner.

Olaylar

Bootstrap'in daraltma sınıfı, daraltma işlevine bağlanmak için birkaç olayı ortaya çıkarır.

Etkinlik tipi Tanım
hide.bs.collapse hideBu olay, yöntem çağrıldığında hemen tetiklenir .
hidden.bs.collapse Bu olay, bir daraltma öğesi kullanıcıdan gizlendiğinde tetiklenir (CSS geçişlerinin tamamlanmasını bekler).
show.bs.collapse Bu olay, showörnek yöntemi çağrıldığında hemen tetiklenir.
shown.bs.collapse Bu olay, bir daraltma öğesi kullanıcıya görünür hale getirildiğinde tetiklenir (CSS geçişlerinin tamamlanmasını bekler).
const myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', event => {
  // do something...
})