
I progetti con le righe elastiche
Hover, Fisica, SVG
NuovaGratis
Un pavimento a piastrelle visto dall’alto in prospettiva, disegnato piastrella per piastrella in SVG. Sotto il puntatore le piastrelle si alzano come colonnine, di più quella sotto e sempre meno le altre, ognuna su una molla. Un clic lascia cadere un sassolino e un anello di piastrelle alzate corre via; i due oggetti appoggiati sul pavimento salgono e scendono con la loro piastrella.
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>Tiles that rise</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/fraunces@5.3.0/index.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/dm-sans@5.3.0/index.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="room" data-room>
<header class="bar">
<a class="brand" href="#">Grout & Co.</a>
<nav class="bar__nav" aria-label="Sections">
<a href="#">Terracotta</a>
<a href="#">Zellige</a>
<a href="#">Showroom</a>
</nav>
</header>
<div class="words">
<h1 class="words__title">Floors you want to touch.</h1>
<p class="words__line">Hand-glazed terracotta and zellige, laid by people who care about the grout.</p>
<a class="words__button" href="#">Book a showroom visit</a>
</div>
<!-- the floor: an isometric grid drawn by the script, one group per tile (two sides and the top) -->
<svg class="floor" data-floor aria-hidden="true"></svg>
<p class="hint" data-hint>Move over the floor. Click to drop a pebble.</p>
</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.
24 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 «Il pavimento che si alza» da Animorio e adattala al mio sitoIl pavimento ha le sue coordinate, u e v, in piastrelle; sullo schermo diventano x = X0 + (u − v) · L/2 e y = Y0 + (u + v) · L/4, dove L è la larghezza di una piastrella da un angolo all’altro. La stessa formula al contrario porta il puntatore sul pavimento. Si creano solo le piastrelle che si vedono, più un margine per quelle alzate.
Ogni piastrella è un gruppo SVG con tre poligoni: i due fianchi davanti e la faccia di sopra. La faccia di sopra si sposta in su di THICK più l’altezza; i fianchi vanno dagli spigoli sul pavimento a quelli della faccia, quindi a riposo sono un bordino e salendo si allungano. I fianchi hanno lo stesso colore della piastrella, all’80% e al 66%.
Le piastrelle si aggiungono per diagonali, dalla più lontana alla più vicina, quindi una piastrella alzata copre quelle dietro e viene coperta da quelle davanti senza bisogno di riordinare niente. Ogni oggetto entra subito dopo la sua piastrella, e sale con lei grazie a un gruppo che riceve la stessa altezza.
Per ogni piastrella l’altezza voluta è LIFT · (1 − d/RADIUS)², con d la distanza dal puntatore misurata sul pavimento, in piastrelle: per questo la zona alzata è un cerchio sul pavimento e un’ellisse sullo schermo. L’altezza vera la insegue su una molla, SPRING, rigidità e smorzamento, che passa un poco la misura e torna. Le piastrelle ferme e a zero non si ridisegnano.
Un clic aggiunge un anello che cresce: alla distanza d e al tempo t vale PEBBLE[0] · e^(−PEBBLE[2]·t) · e^(−((d − PEBBLE[1]·t)/0,9)²). Gli anelli si sommano al puntatore e passano anche loro per la molla, quindi le piastrelle dondolano al passaggio.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
TILE | script.js | 74 | La larghezza di una piastrella sullo schermo, da un angolo all’altro, in pixel; su uno schermo stretto si riduce. |
RADIUS | script.js | 2.4 | Fin dove si alzano le piastrelle intorno al puntatore, in piastrelle. |
LIFT | script.js | 34 | Quanto si alza la piastrella sotto il puntatore, in pixel. |
SPRING | script.js | 260, 15 | La molla di ogni piastrella: rigidità e smorzamento. Con meno smorzamento rimbalzano di più. |
PEBBLE | script.js | 26, 7, 1.6 | Il sassolino: l’altezza del suo anello in pixel, la velocità in piastrelle al secondo, quanto in fretta si spegne. |
WANDER | script.js | 2.5 | I secondi senza puntatore prima che uno invisibile passeggi sul pavimento; a 0 mai. |
GLAZES | script.js | #c8694a, #efe3cf | I due smalti della scacchiera. |
JITTER | script.js | 0.05 | Quanto lo smalto di ogni piastrella si discosta dalle vicine, come nelle piastrelle fatte a mano. |
THICK | script.js | 4 | Il bordo di una piastrella a riposo, in pixel. |
Per una pagina d’apertura che deve far venire voglia di toccare: piastrelle, pavimenti, giochi da tavolo, una mappa, una scacchiera di prodotti. Funziona con piastrelle grandi abbastanza da vedersi alzare, da 50 a 90 pixel, e un fondo calmo; con piastrelle piccole il disegno diventa un tremolio.
Il pavimento parte più in basso e le piastrelle sono più piccole (almeno 44 pixel). Il dito appoggiato le alza come il puntatore e un tocco lascia cadere il sassolino; quando il dito si alza, dopo due secondi e mezzo passeggia il puntatore invisibile. Sul pavimento la pagina non scorre.
Le piastrelle non si muovono e non ci sono né sassolini né passeggiate: sotto il puntatore la faccia di sopra si schiarisce, fino a un terzo verso il bianco per quella sotto, e torna del suo colore quando il puntatore va via.
GSAP 3.15.0, Fraunces (font variabile) 5.3.0, DM Sans (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 6,3 KB; le librerie: GSAP 28 KB.
Provata il 2 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.