
Otturatore a colonne
Transizioni
NuovaGratis
Un cambio di pagina minimal a clic: la metà di sopra della pagina si stacca da una piega sottile e ricade verso di te come una paletta di un tabellone delle partenze. Sul retro della paletta c’è la metà di sotto della pagina nuova, che si posa con un piccolo colpo; la piega svanisce e il testo sale.
Una cartella che funziona da sola: index.html, style.css, script.js e le librerie da CDN. Nelle schede React e Vue la stessa demo è già un componente, che spegne le sue animazioni quando esce dalla pagina.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>The split-flap transition</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/newsreader@5.3.0/opsz.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="stage" data-stage>
<!-- the first page: its headline sits right across the crease, so the fold runs through its letters -->
<section class="page page--a is-on" data-page="a" aria-label="Rooms">
<header class="bar">
<span class="brand">Saltmoor</span>
<nav class="nav" aria-label="Pages">
<a href="#rooms" aria-current="page">Rooms</a>
<a href="#garden" data-go="b">Garden</a>
</nav>
</header>
<div class="hero">
<h1 class="headline" data-headline>Rooms</h1>
<div class="below">
<p class="lede">Eleven rooms above the harbour, each with a window on the boats.</p>
<a class="go go--next" href="#garden" data-go="b" data-autoclic>
<span class="go__text">See the garden</span>
<svg class="go__arrow" viewBox="0 0 22 12" aria-hidden="true"><path d="M1 6h19M15 1.5 20 6l-5 4.5"/></svg>
</a>
</div>
</div>
<footer class="foot">
<span>A small hotel by the sea</span>
<span>Harbour Road</span>
</footer>
</section>
<!-- the second page, dark: it is printed on the back of the flap and under it -->
<section class="page page--b" data-page="b" aria-label="Garden" aria-hidden="true">
<header class="bar">
<span class="brand">Saltmoor</span>
<nav class="nav" aria-label="Pages">
<a href="#rooms" data-go="a">Rooms</a>
<a href="#garden" aria-current="page">Garden</a>
</nav>
</header>
<div class="hero">
<h2 class="headline" data-headline>Garden</h2>
<div class="below">
<p class="lede">Breakfast under the fig tree, from eight until the bread runs out.</p>
<a class="go go--back" href="#rooms" data-go="a" data-autoclic>
<svg class="go__arrow" viewBox="0 0 22 12" aria-hidden="true"><path d="M21 6H2M7 1.5 2 6l5 4.5"/></svg>
<span class="go__text">Back to the rooms</span>
</a>
</div>
</div>
<footer class="foot">
<span>A small hotel by the sea</span>
<span>Harbour Road</span>
</footer>
</section>
<!-- the fold, built by the script: the half of the old page that stays, the flap, and the crease -->
<div class="fold" data-fold aria-hidden="true"></div>
<div class="crease" data-crease aria-hidden="true"></div>
</main>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.15.0/dist/gsap.min.js"></script>
<script src="script.js"></script>
</body>
</html>Cambia valori, colori e testi con le manopole e guarda l’animazione rispondere dal vivo. Oppure scrivi tu nel codice. Poi scarica la cartella con le tue modifiche.
29 valori da cambiare
Col connettore di Animorio, Claude Code la prende da qui con tutta la sua guida e la adatta al tuo progetto. Incolla questa richiesta:
Prendi «La transizione a ribalta» da Animorio e adattala al mio sitoLe pagine vere non si tagliano mai. Per ogni passaggio lo script fa copie intere delle due pagine e le ritaglia con clip-path a metà, sulla variabile --cut: sotto sta la pagina nuova vera, sopra di lei la metà di sotto della vecchia (quella che verrà coperta), e sopra tutto la paletta. Nelle copie si tolgono data-go e data-autoclic e i link escono dal Tab.
La paletta è un div con transform-style: preserve-3d e transform-origin sulla piega. La faccia davanti è la metà di sopra della pagina vecchia; quella dietro è la metà di sotto della pagina nuova, già girata di 180 gradi intorno alla piega e con backface-visibility hidden. Ruotando la paletta di −180 gradi (rotateX negativo porta il bordo alto verso chi guarda) la faccia dietro torna a zero e si legge dritta, al posto giusto.
Ogni pezzo ha sopra un velo nero con l’opacità calcolata dall’angolo: la faccia davanti si scurisce come SHADE·(1 − cos θ), quella dietro si schiarisce come SHADE·(1 + cos θ), la metà che sta per essere coperta si scurisce negli ultimi 80 gradi, e sulla metà nuova appena scoperta c’è un’ombra sfumata vicino alla piega che sparisce mentre la paletta scende.
Prima un sollevamento di 14 gradi con power2.out (l’esitazione), poi la caduta fino a 180 con power3.in, che accelera come un peso. All’arrivo la paletta torna su di KNOCK gradi in 0,13 secondi, ricade, poi un secondo rimbalzo di un quinto: due colpi che si smorzano. Intanto la piega svanisce e il testo sale con back.out.
Ogni passaggio è una timeline sola con timeScale per SPEED; un clic che arriva mentre la pagina gira aspetta in coda. Le misure (la piega al 47% dell’altezza, il titolo che entra nella larghezza) si rifanno a ogni ridimensionamento. Con il movimento ridotto la pagina vecchia svanisce e poi compare la nuova, senza che le due si vedano una attraverso l’altra.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
FOLD | script.js | 0.95 | I secondi che la paletta impiega a ricadere piatta. |
LIFT | script.js | 0.18 | I secondi in cui la paletta esita appena staccata dalla piega, prima di cadere. |
KNOCK | script.js | 9 | Di quanti gradi la paletta rimbalza quando si posa: 0 = si posa e basta. |
SHADE | script.js | 0.42 | Quanto si scurisce la paletta quando è di taglio (da 0 a 0.8). |
DEPTH | script.js | 1500 | La prospettiva in pixel: più piccola, la paletta esce di più dalla pagina. |
SPEED | script.js | 1 | La velocità di tutto: 2 è il doppio, 0.5 la metà. |
Per passare da una pagina all’altra in un sito sobrio con un titolo grande al centro: un albergo, un bed and breakfast, una stazione o un viaggio, un ristorante col menu del giorno, un portfolio con un progetto per pagina. Funziona bene alternando una pagina chiara e una scura.
La stessa transizione con le misure adattate: il titolo si stringe fino a stare nello schermo, la piega resta poco sopra la metà e il testo va a capo sotto. Un tocco sul link la fa girare.
Niente gira: la pagina vecchia svanisce e poi compare quella nuova in dissolvenza.
GSAP 3.15.0, Newsreader (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 5,9 KB; le librerie: GSAP 28 KB.
Provata il 19 ottobre 2026
Puoi usarla nei tuoi progetti e in quelli dei tuoi clienti. Non puoi rivenderla né ridistribuirla così com’è. GSAP resta sotto la sua licenza Standard. Licenza completa.
Con l’email e la password del tuo account.
oppure con l’email
Hai fatto l’accesso come .
Con l’account scarichi lo zip di ogni animazione e di ogni pacchetto, gratis.