Vai al contenuto
animorio
EN
Torna alla libreria

Otturatore a colonne

Quattro colonne di larghezze diverse cadono a scalinata, la pagina cambia sotto e poi si scopre. Un gesto solo per caricamento e passaggi.

TransizioniGSAPFacileGratis

Il codice

Una cartella che funziona da sola: index.html, style.css, script.js e le librerie da CDN.

<!doctype html>
<html lang="it">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Otturatore a colonne</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/mona-sans@5.3.0/standard.css">
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <header class="testata">
    <span class="marchio">Studio</span>
    <nav class="voci" aria-label="Pagine">
      <button type="button" class="voce" data-vai="lavori" aria-current="page">Lavori</button>
      <button type="button" class="voce" data-vai="studio" data-autoclic>Chi siamo</button>
    </nav>
  </header>

  <main>
    <section class="pagina pagina--lavori" data-pagina="lavori">
      <p class="sopra">Pagina uno</p>
      <h1 class="titolo">Lavori scelti</h1>
      <p class="testo">Clicca «Chi siamo»: l'otturatore cade a colonne, la pagina cambia sotto, poi le colonne risalgono a scalinata.</p>
    </section>
    <section class="pagina pagina--studio" data-pagina="studio" hidden>
      <p class="sopra">Pagina due</p>
      <h1 class="titolo">Chi siamo</h1>
      <p class="testo">La stessa mossa serve per il caricamento iniziale e per ogni passaggio fra pagine: chi guarda la riconosce e il sito sembra uno solo.</p>
    </section>
  </main>

  <!-- l'otturatore: quattro colonne di larghezze diverse -->
  <div class="otturatore" aria-hidden="true">
    <span style="--f: 22"></span><span style="--f: 18"></span><span style="--f: 38"></span><span style="--f: 22"></span>
  </div>

  <script src="https://cdn.jsdelivr.net/npm/gsap@3.15.0/dist/gsap.min.js"></script>
  <script src="script.js"></script>
</body>
</html>

Cosa fa

Quando cambi pagina, quattro colonne scendono dall'alto una dopo l'altra, non in fila ma in un ordine sparso: la più larga per prima. Coperta la pagina, il contenuto cambia; poi le colonne proseguono verso il basso e scoprono la pagina nuova, mentre il titolo sale dalla sua maschera. Lo stesso gesto apre il sito al primo caricamento.

Come funziona

Colonne di larghezze diverse

Un contenitore fisso a tutto schermo in flex, con quattro span e flex-grow 22, 18, 38, 22. Le larghezze diverse sono metà dell'effetto: con colonne uguali sembra una tenda.

Un ordine sparso

L'array ORDINE decide chi parte per prima: [2, 0, 3, 1] fa partire la colonna larga, poi la prima, poi l'ultima. Con uno stagger piccolo il bordo diventa una scalinata.

Scende e continua

Per chiudere, scaleY da 0 a 1 con l'origine in alto. Per aprire, scaleY da 1 a 0 con l'origine in basso: la colonna sembra proseguire la corsa invece di tornare indietro.

Il cambio sotto

La funzione vai() aspetta la chiusura (le timeline di GSAP si possono attendere con await), scambia il contenuto, fa partire l'entrata del titolo e poi apre.

Valori da cambiare

NomeFileDi partenzaCosa cambia
ORDINEscript.js[2, 0, 3, 1]L'ordine delle colonne. Prova [0, 1, 2, 3] per una tenda che scorre, [1, 3, 0, 2] per un ritmo più nervoso.
DURATA / SFASATURAscript.js0.85 / 0.06Durata di ogni colonna e ritardo fra l'una e l'altra.
--findex.html22, 18, 38, 22La larghezza relativa di ogni colonna.
--colonnastyle.css#0b3b39Il colore dell'otturatore.

Quando usarla

Per i passaggi fra pagine e per il caricamento, quando vuoi che tutto il sito abbia una firma riconoscibile. Non per aprire menù o finestre: lì è troppo lento.

Sul telefono

Identica. Le colonne sono in proporzione, quindi funzionano anche in verticale.

Con il movimento ridotto

Nessun otturatore: la pagina cambia subito.

Trappole

  • In un sito a più pagine l'otturatore deve essere già chiuso nel primo disegno della pagina nuova: scrivi la classe con uno script in linea nell'head, altrimenti vedi un lampo della pagina prima che si chiuda.
  • Tornando indietro col tasto del browser la pagina può arrivare dalla cache con l'otturatore chiuso: ascolta pageshow con event.persisted e riaprilo.
  • Non lasciare mai i collegamenti bloccati: se l'animazione non parte (scheda in secondo piano), un timer di sicurezza deve cambiare pagina comunque.
  • Safari su iPhone tinge le sue barre con il colore di un elemento fisso a tutto schermo, anche se le colonne sono ridotte a zero: a otturatore aperto metti visibility: hidden sul contenitore.

Librerie

GSAP 3.15.0, Mona Sans (font variabile) 5.3.0.

Peso: 7,0 KB dei nostri file.

Collaudo

Provata il 26 settembre 2026

  • Computer: Fatto
  • Telefono: Fatto
  • Movimento ridotto: Fatto
  • Safari su iPhone: Fatto

Licenza d’uso

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.

Tutte le animazioni