Colapso
Alterne a visibilidade do conteúdo em seu projeto com algumas classes e nossos plugins JavaScript.
Como funciona
O plug-in JavaScript de recolhimento é usado para mostrar e ocultar conteúdo. Botões ou âncoras são usados como gatilhos que são mapeados para elementos específicos que você alterna. Recolher um elemento irá animar o heightseu valor atual para 0. Dado como o CSS lida com animações, você não pode usar paddingem um .collapseelemento. Em vez disso, use a classe como um elemento de encapsulamento independente.
prefers-reduced-motionconsulta de mídia. Consulte a 
       seção de movimento reduzido de nossa documentação de acessibilidade . 
     Exemplo
Clique nos botões abaixo para mostrar e ocultar outro elemento por meio de alterações de classe:
.collapseesconde conteúdo.collapsingé aplicado durante as transições.collapse.showmostra o conteúdo
Geralmente, recomendamos usar um botão com o data-bs-targetatributo. Embora não seja recomendado do ponto de vista semântico, você também pode usar um link com o hrefatributo (e um role="button"). Em ambos os casos, o data-bs-toggle="collapse"é necessário.
<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>
     Vários destinos
Um <button>ou <a>pode mostrar e ocultar vários elementos referenciando-os com um seletor em seu atributo hrefou . data-bs-targetMúltiplos <button>ou <a>podem mostrar e ocultar um elemento se cada um deles o referenciar com seu atributo hrefoudata-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>
     Acessibilidade
Certifique-se de adicionar aria-expandedao elemento de controle. Esse atributo transmite explicitamente o estado atual do elemento desmontável vinculado ao controle para leitores de tela e tecnologias assistivas semelhantes. Se o elemento recolhível for fechado por padrão, o atributo no elemento de controle deverá ter um valor de aria-expanded="false". Se você definiu o elemento recolhível para ser aberto por padrão usando a showclasse, defina aria-expanded="true"no controle. O plug-in alternará automaticamente esse atributo no controle com base no fato de o elemento recolhível ter sido aberto ou fechado (via JavaScript ou porque o usuário acionou outro elemento de controle também vinculado ao mesmo elemento recolhível). Se o elemento HTML do elemento de controle não for um botão (por exemplo, um <a>ou <div>), o atributorole="button"deve ser adicionado ao elemento.
Se o seu elemento de controle tem como alvo um único elemento recolhível – ou seja, o data-bs-targetatributo está apontando para um idseletor – você deve adicionar o aria-controlsatributo ao elemento de controle, contendo o iddo elemento recolhível. Leitores de tela modernos e tecnologias assistivas semelhantes fazem uso desse atributo para fornecer aos usuários atalhos adicionais para navegar diretamente para o próprio elemento recolhível.
Observe que a implementação atual do Bootstrap não cobre as várias interações de teclado opcionais descritas no padrão de acordeão WAI-ARIA Authoring Practices 1.1 - você precisará incluí-las você mesmo com JavaScript personalizado.
Sass
Variáveis
$transition-collapse:         height .35s ease;
     Aulas
As classes de transição de colapso podem ser encontradas em scss/_transitions.scss, pois são compartilhadas em vários componentes (colapso e acordeão).
.collapse {
  &:not(.show) {
    display: none;
  }
}
.collapsing {
  height: 0;
  overflow: hidden;
  @include transition($transition-collapse);
}
     Uso
O plugin de colapso utiliza algumas classes para lidar com o trabalho pesado:
.collapseesconde o conteúdo.collapse.showmostra o conteúdo.collapsingé adicionado quando a transição começa e removido quando termina
Essas classes podem ser encontradas em _transitions.scss.
Por atributos de dados
Basta adicionar data-bs-toggle="collapse"e data-bs-targeta ao elemento para atribuir automaticamente o controle de um ou mais elementos recolhíveis. O data-bs-targetatributo aceita um seletor CSS ao qual aplicar o recolhimento. Certifique-se de adicionar a classe collapseao elemento recolhível. Se você quiser que ele seja aberto por padrão, adicione a classe adicional show.
Para adicionar gerenciamento de grupo tipo acordeão a uma área recolhível, adicione o atributo data data-bs-parent="#selector". Consulte a demonstração para ver isso em ação.
Por JavaScript
Ative manualmente com:
var collapseElementList = [].slice.call(document.querySelectorAll('.collapse'))
var collapseList = collapseElementList.map(function (collapseEl) {
  return new bootstrap.Collapse(collapseEl)
})
     Opções
As opções podem ser passadas por meio de atributos de dados ou JavaScript. Para atributos de dados, anexe o nome da opção a data-bs-, como em data-bs-parent="".
| Nome | Modelo | Predefinição | Descrição | 
|---|---|---|---|
parent |  
        seletor | objeto jQuery | Elemento DOM | false |  
        Se pai for fornecido, todos os elementos recolhíveis sob o pai especificado serão fechados quando este item recolhível for mostrado. (semelhante ao comportamento tradicional do acordeão - isso depende da cardclasse). O atributo deve ser definido na área desmontável de destino. |  
       
toggle |  
        boleano | true |  
        Alterna o elemento recolhível na invocação | 
Métodos
Métodos e transições assíncronas
Todos os métodos de API são assíncronos e iniciam uma transição . Eles retornam ao chamador assim que a transição é iniciada, mas antes que ela termine . Além disso, uma chamada de método em um componente de transição será ignorada .
Consulte nossa documentação JavaScript para obter mais informações .
Ativa seu conteúdo como um elemento recolhível. Aceita opções opcionais object.
Você pode criar uma instância de recolhimento com o construtor, por exemplo:
var myCollapse = document.getElementById('myCollapse')
var bsCollapse = new bootstrap.Collapse(myCollapse, {
  toggle: false
})
     | Método | Descrição | 
|---|---|
toggle |  
        Alterna um elemento recolhível para mostrado ou oculto. Retorna ao chamador antes que o elemento recolhível tenha realmente sido mostrado ou ocultado (ou seja, antes que o evento shown.bs.collapseor hidden.bs.collapseocorra). |  
       
show |  
        Mostra um elemento recolhível. Retorna ao chamador antes que o elemento recolhível tenha realmente sido mostrado (por exemplo, antes que o shown.bs.collapseevento ocorra). |  
       
hide |  
        Oculta um elemento recolhível. Retorna ao chamador antes que o elemento colapsável tenha sido ocultado (por exemplo, antes que o hidden.bs.collapseevento ocorra). |  
       
dispose |  
        Destrói o colapso de um elemento. (Remove os dados armazenados no elemento DOM) | 
 getInstance  |  
        Método estático que permite obter a instância de colapso associada a um elemento DOM, você pode usá-lo assim:bootstrap.Collapse.getInstance(element)  |  
       
 getOrCreateInstance  |  
        Método estático que retorna uma instância de recolhimento associada a um elemento DOM ou cria uma nova caso não tenha sido inicializada. Você pode usar assim:bootstrap.Collapse.getOrCreateInstance(element)  |  
       
Eventos
A classe de recolhimento do Bootstrap expõe alguns eventos para conexão com a funcionalidade de recolhimento.
| Tipo de evento | Descrição | 
|---|---|
show.bs.collapse |  
        Este evento é acionado imediatamente quando o showmétodo de instância é chamado. |  
       
shown.bs.collapse |  
        Este evento é acionado quando um elemento de recolhimento se torna visível para o usuário (aguardará a conclusão das transições CSS). | 
hide.bs.collapse |  
        Este evento é disparado imediatamente quando o hidemétodo é chamado. |  
       
hidden.bs.collapse |  
        Este evento é acionado quando um elemento de recolhimento foi ocultado do usuário (aguardará a conclusão das transições CSS). | 
var myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', function () {
  // do something...
})