Effetto lente di vetro sui video in Webflow

Intermedio 16:06 webflowwebglvideodistorsioneanimazione

Trasforma il cursore in una lente di vetro sopra un video hero in Webflow — un effetto di distorsione cromatica su GPU che configuri con pochi attributi custom.

Punti chiave

  • Il browser non può leggere i pixel di un embed di YouTube o Vimeo, quindi l'effetto ha bisogno di un MP4 grezzo — l'elemento background video di Webflow lo ospita sulla sua CDN e ti dà un URL diretto.
  • La distorsione gira come shader custom sulla GPU, non sulla CPU — è questo che la tiene fluida a 60fps anche con video pesanti.
  • Un singolo attributo test alterna tra design mode (un pannello di controllo dal vivo) e production mode (distorsione solo all'hover), così regoli tutto l'aspetto senza mai toccare il codice.
  • Ogni parametro che non imposti mantiene il suo default, quindi aggiungi un attributo solo per i valori che vuoi davvero cambiare.
  • Il componente è attento alle performance di default: si mette in pausa quando esci dallo schermo con lo scroll, salta le pesanti librerie 3D sui dispositivi touch e le carica solo se l'effetto è davvero nella pagina.

Capitoli del video

  1. 00:00 Intro
  2. 01:02 Analisi della sezione hero
  3. 02:22 Capire l'effetto di distorsione a lente
  4. 03:07 Aggiornare il layout
  5. 06:21 Aggiungere il codice e configurare gli attributi
  6. 08:40 Personalizzare i parametri dell'effetto
  7. 12:17 Migliorare la leggibilità del testo
  8. 13:22 Dietro le quinte: ottimizzazioni delle performance
  9. 15:13 Outro e consiglio musicale

Trasforma la sezione hero del tuo sito Webflow in una lente di vetro interattiva. Quando un visitatore muove il cursore sul video, l’immagine si piega e si allunga mentre i colori si separano come la luce che attraversa un prisma — per poi tornare dolcemente alla normalità man mano che si allontana. È un effetto WebGL che sembra costoso e gira fluidissimo.

La parte più bella è quanto poco costruisci davvero. Niente JavaScript da modificare: aggiungi un canvas al layout, lo colleghi a un video, incolli uno script già pronto e regoli l’aspetto con una manciata di attributi custom. E dato che il lavoro pesante avviene sulla GPU, resta veloce e scala bene — ancora prima di pensare alle performance, il componente ti copre già le spalle.

Come funziona

L’effetto disegna il tuo video su un canvas HTML e lo distorce in tempo reale, il che significa che il codice ha bisogno di accedere direttamente a ogni fotogramma. È qui il problema con YouTube o Vimeo: servono un player protetto e il browser impedisce di proposito al codice esterno di leggerne i pixel. Quindi invece di un embed ti serve un file MP4 grezzo — e il bello è che Webflow te ne ospita uno. Metti un elemento background video sulla pagina, carica il tuo clip e Webflow mette l’MP4 originale sulla sua CDN con un URL diretto che puoi copiare.

Sul fronte layout ci sono solo un paio di pezzi in movimento. La sezione diventa il riferimento di posizionamento (position: relative) e al suo interno vive un canvas che riempie tutta la sezione in absolute. In Webflow lo crei come custom element, gli dai la classe canvas, poi cambi il suo tag in canvas così diventa una vera superficie di disegno. Un tranello: un canvas posizionato in absolute sta sopra il tuo contenuto, quindi testo e pulsanti smettono di essere cliccabili — la soluzione è mettere anche il main container su position: relative, che riporta il contenuto sopra il canvas.

Tutta la parte visiva gira come shader GPU custom, quindi la distorsione è calcolata sulla tua scheda grafica invece che sul thread principale del browser — ecco perché mantiene stabili i 60fps. Lo script è anche discretamente premuroso: mette in pausa il video e tutto il rendering quando la sezione esce dalla vista con lo scroll, rileva i dispositivi touch e ripiega sul player nativo del mobile invece di caricare pesanti librerie 3D, e scarica quelle librerie solo se la pagina corrente usa davvero l’effetto.

Per la messa a punto, un attributo test accende un pannello di controllo dal vivo dove trascini gli slider per il raggio della lente, la forza della distorsione, la separazione dei colori (gli RGB offset) e l’easing finché non ti sembra giusto. Quei cambiamenti sono temporanei — un refresh li azzera — quindi quando sei soddisfatto riscrivi i valori come attributi e spegni il test. Tutto ciò che non imposti mantiene semplicemente il suo default.

Come si usa

  1. Clona il progetto. Prendi il cloneable Webflow — include il layout e lo script completamente documentato. Non devi capire il codice per usare l’effetto.

  2. Costruisci il layout. Imposta la sezione su position: relative. Aggiungi un custom element al suo interno, dagli la classe canvas, porta tutti i padding a 0, position: absolute e width/height al 100% così riempie la sezione. Poi cambia il suo tag in canvas.

  3. Ottieni un URL diretto del video. Aggiungi temporaneamente un elemento background video al body e carica il tuo video. Quando è pronto, clicca la piccola icona a freccia per aprire il file ospitato in una nuova scheda e copia quell’URL — è il tuo link MP4 diretto. Poi elimina l’elemento background video; il file resta sulla CDN.

  4. Ripristina l’interattività. Dato che ora il canvas sta sopra il contenuto, imposta il main container su position: relative così testo e pulsanti tornano cliccabili.

  5. Incolla il codice. Ispeziona il cloneable, copia tutto ciò che sta nella sezione before </body> (impostazioni della pagina) e incollalo nello stesso punto del tuo progetto.

  6. Collega i tre attributi sul canvas. Aggiungi fc-video-distortion-element="canvas", fc-video-distortion-video impostato sull’URL che hai copiato e fc-video-distortion-test="1" per aprire il pannello di controllo. Vedi il riferimento di configurazione qui sopra per cosa fa ciascuno.

  7. Regola, poi rendi permanente. Pubblica, apri il sito live e gioca con il pannello di controllo finché non ami l’aspetto. Per ogni parametro che hai cambiato, aggiungi un attributo custom corrispondente sul canvas (quelli che salti mantengono i default). Infine porta fc-video-distortion-test a 0, pubblica di nuovo e il pannello sparisce — l’effetto di produzione ora gira solo all’hover.

  8. (Facoltativo) Aggiungi un overlay per la leggibilità. Metti un div subito dopo il canvas, dagli una classe tipo section_overlay, imposta position: absolute e fallo coprire tutta la sezione, poi applica un gradiente lineare a 90°: un colore scuro al 50% di opacità allo 0%, lo stesso colore allo 0% di opacità al 50% e di nuovo il colore scuro al 50% di opacità al 100%. Il tuo contenuto resta pulito e leggibile su qualsiasi filmato.

Guida alla configurazione

Attributo Valori Default Cosa fa
fc-video-distortion-element canvas Dice al codice quale canvas deve ospitare il video e ricevere l'effetto di distorsione. Mettilo sul tuo elemento canvas con il valore canvas.
fc-video-distortion-video URL MP4 diretto L'URL diretto del file MP4 — quello che ti dà la CDN di Webflow dopo un upload di background video. È il video che l'effetto distorce.
fc-video-distortion-test 1 · 0 Alterna tra design mode e production mode. Impostalo a 1 per mostrare il pannello di controllo dal vivo e tenere la distorsione sempre visibile mentre regoli l'aspetto; impostalo a 0 per nascondere il pannello e far girare l'effetto solo all'hover, pronto per i visitatori.

Risorse

Domande frequenti

Posso applicare un effetto di distorsione WebGL a un video di YouTube o Vimeo in Webflow?
No. Quelle piattaforme servono un player protetto e il browser impedisce al codice esterno di leggerne i pixel, mentre questo effetto ha bisogno di accedere a ogni fotogramma. Usa invece un MP4 grezzo — il modo più semplice per ospitarne uno è caricarlo tramite un elemento background video di Webflow, che mette il file sulla CDN e ti dà un URL diretto.
Come ottengo un URL diretto del video da Webflow?
Aggiungi temporaneamente un elemento background video al body, carica il tuo clip, poi clicca la piccola icona a freccia per aprire il file ospitato in una nuova scheda — l'indirizzo di quella scheda è il link MP4 diretto. Puoi eliminare l'elemento dopo; il video caricato resta sulla CDN.
Perché l'effetto di distorsione video non compare su mobile?
È voluto. Il componente rileva i dispositivi touch e salta le pesanti librerie 3D, ripiegando sul player video nativo del mobile — così telefoni e tablet ottengono caricamenti più veloci e meno consumo di batteria invece di un effetto legato alla GPU.
Come rendo permanenti le mie impostazioni di distorsione?
Mentre la regoli, l'effetto gira in test mode con un pannello di controllo dal vivo, ma un refresh azzera tutto. Quando ti piace un aspetto, aggiungi un attributo custom sul canvas per ogni parametro che hai cambiato, poi porta l'attributo test a zero per nascondere il pannello e pubblicare la versione di produzione.
Come mantengo il testo leggibile sopra un video di sfondo distorto?
Aggiungi un div subito dopo il canvas, fallo coprire tutta la sezione e dagli un overlay con un gradiente lineare sottile — per esempio più scuro in alto e in basso e completamente trasparente al centro. Sta sopra il video e mantiene titolo e pulsanti leggibili su qualsiasi filmato.

← Torna al corso

Fa parte anche di questi corsi