SWCore / Animações / Transição de página

Transição de página Animações

Anima a saída e a chegada ao clicar num link, em vez da troca instantânea e seca do navegador.

O que é

Cobre a navegação real (não é uma SPA/PJAX) com um efeito visual — a página atual "sai" com uma animação, o navegador troca de verdade pra próxima URL, e ela "entra" com a animação combinada.

Como funciona

Ao clicar num link com data-sw-page (mesma origem, sem target/download, sem modificadores de teclado), o clique é interceptado: uma camada de overlay cobre a tela com o efeito de saída, a navegação real acontece por baixo, e a URL de destino já "sabe" (via sessionStorage) que precisa tocar o efeito de entrada assim que carregar.

Exemplos

01 · Teste Interativo de Efeitos (Clique para testar cada transição ao vivo) Ao vivo

Clique em qualquer botão abaixo para ver a animação acontecer na tela em tempo real:

<!-- 
  Quando o link aponta para "#" ou botão, o SWCore toca a simulação 
  completa (cobertura + revelação) sem sair da página atual!
-->
<button type="button" sw-btn class="sw-btn-pri" data-sw-page="wipe">Wipe (Cortina Vertical)</button>
<button type="button" sw-btn class="sw-btn-out" data-sw-page="curtain">Curtain (Cortina Central)</button>
<button type="button" sw-btn class="sw-btn-out" data-sw-page="fade">Fade (Dissolver)</button>
<button type="button" sw-btn class="sw-btn-out" data-sw-page="slide">Slide (Deslizar Esquerda)</button>
<button type="button" sw-btn class="sw-btn-out" data-sw-page="slide-right">Slide Right (Direita)</button>
<button type="button" sw-btn class="sw-btn-out" data-sw-page="slide-up">Slide Up (De Baixo)</button>
<button type="button" sw-btn class="sw-btn-out" data-sw-page="slide-down">Slide Down (De Cima)</button>
02 · Efeitos 3D, Zoom e Desfoque (Scale, Flip, Blur) Ao vivo
<button type="button" sw-btn class="sw-btn-out" data-sw-page="scale">scale</button>
<button type="button" sw-btn class="sw-btn-out" data-sw-page="scale-down">scale-down</button>
<button type="button" sw-btn class="sw-btn-out" data-sw-page="flip">flip (Giro 3D Y)</button>
<button type="button" sw-btn class="sw-btn-out" data-sw-page="flip-x">flip-x (Giro 3D X)</button>
<button type="button" sw-btn class="sw-btn-out" data-sw-page="blur">blur (Desfoque de Vidro)</button>
03 · Efeito Composto — Saída diferente da Entrada (saída|entrada) Ao vivo
<!-- Um efeito para cobrir a página atual, e outro efeito diferente ao abrir a próxima -->
<button type="button" sw-btn class="sw-btn-out" data-sw-page="fade|slide-up">Sai com Fade, entra com Slide Up</button>
<button type="button" sw-btn class="sw-btn-out" data-sw-page="slide-left|slide-right">Slide Esquerda | Slide Direita</button>
<button type="button" sw-btn class="sw-btn-out" data-sw-page="curtain|wipe">Curtain | Wipe</button>
04 · Navegação Real entre Páginas do Site Ao vivo
<!-- Link com URL real: cobre a tela, carrega a próxima página e a revela suavemente -->
<a href="motion-reveal.html" data-sw-page="curtain" class="sw-btn sw-btn-pri">Ir para Reveal (Curtain) →</a>
<a href="../index.html" data-sw-page="wipe" class="sw-btn sw-btn-out">Voltar para Home (Wipe) →</a>
05 · Logo própria e cor da marca (em vez de "Carregando" genérico) Ao vivo

A documentação já usa a logo do SWCore como marca da transição. Clique nos exemplos acima: se a próxima página demorar, é a marca que aparece no centro, sem texto genérico.

<!-- Em qualquer lugar da página, uma vez só: -->
<template id="sw-page-loader">
  <img src="logo.png" alt="Sua marca">
</template>

<style>
  /* Opcional: cor da cortina em TODOS os efeitos, sem editar cada um */
  :root { --sw-page-bg: #6d28d9; }
</style>

<a href="proxima-pagina.html" data-sw-page="wipe">Ir</a>
<!-- Sem template, cai no "Carregando" padrão. O logo só some quando a
     próxima página demora perceptivelmente pra carregar. -->

Atributos

data-sw-page="efeito"
no link — um único efeito (saída = entrada) ou dois separados por | (saída|entrada)
<template id="sw-page-loader">
opcional, em qualquer lugar da página — o conteúdo (logo, SVG, texto próprio) substitui o "Carregando" padrão dentro da cortina
--sw-page-bg (CSS)
cor da cortina em todos os efeitos — sem definir, usa a mesma --color-primary do resto do tema

Variantes

fade
dissolve
slide / slide-right / slide-up / slide-down
desliza pra fora/dentro na direção indicada
scale / scale-up / scale-down
cresce ou encolhe
flip / flip-x
gira em 3D
blur / blur-in / blur-out
desfoca durante a troca
wipe / curtain (padrão)
uma cortina cobre a tela e depois se abre

Eventos

Nenhum.

API (JavaScript)

SWMotion.transition(efeito)
Dispara a transição de página via JavaScript (ex: SWMotion.transition("wipe") ou SWMotion.transition("fade|slide-up")) retornando uma Promise ao concluir.

Requisitos

  • Precisa do gsap-bundle.js (GSAP com ScrollTrigger já incluso) e do swcore.js/swcore.css normais, carregados em todas as páginas do site (origem e destino). Sem isso, a página de destino não sabe tocar o efeito de entrada.

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

  • Não é um roteador SPA / Single Page Application — cada clique realiza uma navegação HTML real do navegador, enquanto o efeito cobre e revela a transição sem "piscada" em branco.
  • Apenas links de mesma origem (same-origin) disparam o efeito; links para sites externos ou links com target="_blank" navegam diretamente sem transição.
  • Em conexões muito lentas, o indicador "Carregando" pulsa discretamente no centro da cortina enquanto a próxima página é baixada via preload em segundo plano.