SWCore / Componentes / Carousel

Carousel Componentes

Carrossel de conteúdo (texto, cards, depoimentos) com 9 efeitos de transição diferentes.

O que é

Parecido com o Slider, mas pensado pra conteúdo não-visual (depoimentos, cards) e com mais opções de efeito de troca (fade, slides direcionais, zoom, bounce, flip).

Como funciona

Cada efeito é um par de transformações CSS (entrada/saída) aplicadas via transform inline no JS — não precisa de CSS extra por efeito. Arraste/swipe (mouse ou touch) sempre fica ativo, independente dos controles visuais escolhidos.

Exemplos

1. Depoimentos — autoplay, setas, pontinhos e swipe Ao vivo
<div sw-carousel sw-carousel-auto="4000">
  <div class="sw-carousel-trk">
    <div><!-- Item 1: qualquer HTML --></div>
    <div><!-- Item 2 --></div>
  </div>
  <button class="sw-carousel-prv">‹</button>
  <button class="sw-carousel-nxt">›</button>
  <div class="sw-carousel-dts"></div>
</div>
2. Os 9 efeitos — sw-carousel-effect Ao vivo

Cada card gira sozinho — repare como o mesmo texto entra de um jeito diferente em cada um.

3. Variantes mínimas — quase tudo é opcional Ao vivo

.sw-carousel-trk é indispensável. Sem controles, ainda dá pra navegar via swipe/arraste ou API.

<!-- Sem dots nem setas — só swipe/autoplay -->
<div sw-carousel sw-carousel-auto="3000">
  <div class="sw-carousel-trk">...</div>
</div>

<!-- Apenas dots -->
<div sw-carousel>
  <div class="sw-carousel-trk">...</div>
  <div class="sw-carousel-dts"></div>
</div>
4. Sem loop — sw-carousel-loop="false" Ao vivo

Trava no primeiro e no último item — clicar em "›" no último não volta pro início.

<div sw-carousel sw-carousel-loop="false">...</div>
5. API JavaScript Ao vivo
const car = document.querySelector('[sw-carousel]');

// Navegação
SW.Carousel.next(car);
SW.Carousel.prev(car);
SW.Carousel.goTo(car, 2); // vai direto pro índice 2

// Play/pause do autoplay
SW.Carousel.pause(car);
SW.Carousel.resume(car);

// Evento
car.addEventListener('sw:carousel:change', (e) => {
  console.log('slide atual:', e.detail.index);
});

Atributos

.sw-carousel-trk
obrigatório — cada filho direto vira um item do carrossel
sw-carousel-effect
"slide-left" (padrão) · "slide-right/up/down" · "zoom-in/out" · "bounce" · "flip" · "fade" — também aceita por item, sobrescrevendo o efeito padrão só pra aquela entrada
sw-carousel-dur
duração da transição em ms (padrão 600)
sw-carousel-auto
intervalo de autoplay em ms (0 = desligado, padrão) — pausa sozinho no hover
sw-carousel-loop="false"
trava no primeiro/último item — "próximo" no último não volta ao início
.sw-carousel-dts
container de pontinhos (opcional) — deixe vazio, o JS preenche sozinho
.sw-carousel-prv / .sw-carousel-nxt
setas de navegação manual (opcionais)

Variantes

Nenhum.

Eventos

sw:carousel:change
{ index }

API (JavaScript)

SW.Carousel.next/prev/goTo/pause/resume(el, idx?)

Requisitos

Nenhuma.

Limitações — o que ele não faz

Nenhuma.