Carousel
Um componente de slideshow para fazer um giro através de elementos (imagens ou slides de texto), como se fosse um carrosel.
Como funciona
O carousel é um slideshow para fazer um giro em vários coteúdos, construído com CSS 3D transforms e um pouco de JavaScript. Ele funciona com o uso de imagens, texto ou marcação personalizada. Também possui suporte para controles anterior, próximo e indicadores.
Nos navegadores onde a API Page Visibility é suportada, o carousel vai evitar deslizar quando a página não está visível para o usuário (como quando o browser está inativo, janela minimizada, etc).
Por favor, esteja atento que carousels aninhados não são suportados e não são, geralmente, amigáveis aos padrões de acessibilidades.
Por último, se você está construindo nosso JavaScript a partir da fonte, vai precisar do util.js
.
Exemplo
Carousels não normalizam dimensões, automaticamente. Assim, você pode precisar usar utilitários adicionais ou estilos personalizados para dimensionar conteúdos, apropriadamente. Apesar de carousels suportarem controles anterior, próximo e indicadores, eles não são obrigatórios, necessariamente. Use e abuse, como quiser.
A classe .active
precisa ser usada em um dos slides, caso contrário, o carousel não ficará visível. Também, se assegure de definir um único ID no .carousel
para os controles opcionais, especialmente, se você está usando múltiplos carousels em uma página. Elementos de controle e indicador devem ter um atributo data-target
(ou links href
) que combinam com o ID do elemento .carousel
.
Só slides
Aqui está um carousel só com slides. Perceba a presença do .d-block
e .w-100
nas imagens do carousel para evitar alinhamento padrão de imagens do navegador.
Com controles
Adicionando os controles anterior e próximo, temos isso:
Com indicadores
Você também pode adicionar indicadores ao carousel, além dos controles.
Com legenda
Adicione legendas nos seus slides, facilmente, usando o elemento .carousel-caption
dentro de qualquer .carousel-item
. Eles podem ser escondidos, facilmente, em qualquer viewport menor, como mostrado é mostrado abaixo, usando utilitários display. Escondemos eles, inicialmente, com .d-none
e trazemos de volta em dispositivos de tamanho mediano, usando .d-md-block
.
Crossfade
Use .carousel-fade
no seu carousel para animar os slides com uma transição esmaecida, invés de um simples slide.
Modo de uso
Via atributos data
Use atributos data para, facilmente, controlar a posição do carousel. O data-slide
aceita as palavras-chaves prev
ou next
, as quais alteram a posição do slide, de acordo com sua atual posição. Opcionalmente, use data-slide-to
para passar um index ao carousel, o qual muda a posição do slide para o index específico, com valores começando em 0
(ex: data-slide-to="2"
).
O atributo data-ride="carousel"
é usado para declarar que o carousel vai começar a animação assim que a página carregar. Este atributo não pode ser usado em combinação com uma (redundante e desnecessária) inicialização JavaScript explícita, do mesmo carousel.
Via JavaScript
Invoque o carousel, manualmente, usando:
Opções
Opções podem ser passadas via atributos data ou JavaScript. Para atributos data, anexe o nome da opção no prefixo data-
, como acontece em data-interval=""
.
Nome | Tipo | Padrão | Descrição |
---|---|---|---|
interval | number | 5000 | A quantidade de tempo de espera entre a troca de slides. Se o valor é false, o carousel não vai girar, automaticamente. |
keyboard | booleano | true | Diz se o carousel deve reagir aos eventos de teclado. |
pause | string | booleano | "hover" | Se tiver definido como Em dispositivos com touch, quando tiver definido o valor |
ride | string | false | Auto inicia o carousel, depois do usuário clicar no primeiro item, manualmente. Se definido com o valor "carousel", o carousel começa assim que carrega. |
wrap | boolean | true | Diz se o carousel deve girar continuamente ou ter paradas bruscas. |
Métodos
Métodos é transições assíncronas
Todos métodos API são assíncronos e iniciam a transição. Eles retornam ao invocador, assim que a transição é iniciada, mas que ela finalize. Além do mais, uma chamada de método em um componente transicionando é ignorada.
.carousel(options)
Inicializa o carousel com um object
de opções opcional e inicia o ciclo dos itens.
.carousel('cycle')
Gira pelos itens do carousel, da esquerda para direita.
.carousel('pause')
Impede o carousel de girar pelos itens.
.carousel(Número)
Gira o carousel para um frame particular (começa em 0, como uma array). Retorna ao invocador, antes do item alvo ser mostrado (antes do evento slid.bs.carousel
ocorrer).
.carousel('prev')
Gira para o item anterior. Retorna ao invocador, antes do item anterior ser mostrado (antes do evento slid.bs.carousel
ocorrer).
.carousel('next')
Gira para o próximo item. Retorna ao invocador, antes do próximo item ser mostrado (antes do evento slid.bs.carousel
ocorrer).
.carousel('dispose')
Destroi um elemento do carousel.
Eventos
A classe carousel do Bootstrap tem dois evento para serem ligados a funcionalidade do carousel. Ambos eventos possuem as seguintes propriedades adicionais:
direction
: a direção na qual o carousel está deslizando (tanto"left"
quanto"right"
);relatedTarget
: o elemento DOM que está sendo deslizado para o lugar do item ativo;from
: o index do atual item;to
: o index do próximo item.
Todos eventos carousel são acionados no próprio carousel (acionados no elemento <div class="carousel">
).
Tipo de evento | Descrição |
---|---|
slide.bs.carousel | Este evento aciona, imediatamente, quando o método slide é invocado. |
slid.bs.carousel | Este evento é acionado quando o carousel acabou de finalizar sua transição. |
Mude a duração da transição
A duração da transição do .carousel-item
pode ser alterada na variável Sass $carousel-transition
, antes de compilar ou em estilos personalizados (se você está usando CSS compilado). Se várias transições são aplicadas, se assegure da transição transform
ser declarada primeiro (ex: transition: transform 2s ease, opacity .5s ease-out
).