Ripple d'acqua interattivi su qualsiasi sezione Webflow

Intermedio 29:14 webflowwebglripplescmsjquery

Aggiungi un effetto ripple d'acqua no-code e configurabile a qualsiasi sezione o galleria CMS in Webflow — basato su jQuery + WebGL con un pannello GUI live per il tuning in tempo reale.

Punti chiave

  • L'effetto distorce un'immagine di sfondo CSS, non un tag <img> — quindi l'elemento che lo riceve deve avere un'immagine impostata come background, altrimenti non succede nulla.
  • Basta un attributo: marca un elemento con FC-ripples="component" e resolution, drop radius e perturbance ricadono tutti su default sensati, così parti con zero configurazione.
  • Il pannello GUI live ti fa regolare la resa nel browser in tempo reale; quando ti piace, riporti i valori vincenti in Webflow come attributi data-* e rimuovi il pannello per la produzione.
  • Gli item CMS non si configurano uno per uno, quindi applichi l'effetto a un div overlay in posizione assoluta (con il background legato all'immagine CMS, sopra un vero <img> che regge il layout) e controlli l'intero set con un unico gruppo condiviso.
  • Il WebGL è pesante, quindi predisponi le vie d'uscita: FC-ripples-disable-mobile lo salta sui telefoni e un button toggle con aria-pressed lascia mettere in pausa l'effetto — bene sia per le performance sia per l'accessibilità.

Capitoli del video

  1. 00:00 Intro
  2. 01:39 Primo esempio e configurazione della soluzione
  3. 08:03 Primo esempio: comportamento live e configurazione interattiva
  4. 13:55 Esempio CMS: struttura e configurazione
  5. 21:06 Esempio CMS: comportamento live e altri test
  6. 24:37 Panoramica del codice
  7. 28:04 Outro

Aggiungi un effetto ripple d’acqua interattivo a qualsiasi sezione o elemento in Webflow — di quelli che reagiscono al cursore e distorcono dolcemente lo sfondo come la superficie di uno stagno — con zero codice e pieno controllo sull’aspetto. Gira su un leggero plugin jQuery con un po’ di magia WebGL sopra, avvolto in un sistema pulito basato su attributi così puoi usarlo e modificarlo anche se il JavaScript non è il tuo forte.

La parte più bella è che funziona già così com’è. Marca un elemento con un singolo attributo e ottieni subito dei default sensati — poi, se vuoi, apri un pannello live per rifinire la resa direttamente nel browser prima di riportare i tuoi valori preferiti in Webflow. Lo stesso identico setup scala da un singolo hero banner fino a un’intera galleria CMS.

E dato che gli effetti WebGL possono essere pesanti, arriva con le vie d’uscita che contano davvero: lo disabiliti su mobile con un attributo e dai ai visitatori un vero button toggle — con tanto di ARIA — così possono metterlo in pausa quando vogliono.

Come funziona

La regola che inganna tutti: l’effetto ha bisogno di un’immagine di sfondo. Il plugin usa WebGL per distorcere un’immagine di sfondo CSS — non un tag <img>, e nemmeno un’immagine dentro l’elemento. Quindi qualunque elemento vuoi far increspare deve avere l’immagine assegnata come background (con background-size: cover su una sezione, così riempie lo spazio e scala in modo pulito). Inserisci un’immagine nativa e non succederà nulla; è questo singolo dettaglio dietro alla maggior parte dei “perché non funziona”.

Un attributo, poi i default. Marca l’elemento bersaglio con FC-ripples="component" e basta davvero — lo script legge tre parametri (resolution, drop radius, perturbance) e ricade su default ragionevoli ogni volta che non li hai impostati. È voluto: puoi prototipare all’istante e rifinire solo quando ti va. Quando vuoi rifinire, aggiungi FC-ripples-config="qualcosa" e lo script genera un pannello GUI live etichettato con il tuo valore. Regoli gli slider nel browser, guardi l’acqua cambiare in tempo reale e — trovato il punto giusto — torni in Webflow, rimuovi l’attributo config e fissi i tuoi numeri come data-resolution, data-drop-radius e data-perturbance. Pulito, ottimizzato, pronto alla produzione, senza pannello che finisce ai visitatori.

Il trucco CMS è la parte furba. Un’immagine di sfondo non occupa spazio nel layout — non ha larghezza né altezza proprie — quindi se costruissi una galleria solo con immagini di sfondo, gli item collasserebbero. La soluzione: tieni un vero <img> in ogni item per definire dimensioni e proporzioni, poi sovrapponi un div overlay in posizione assoluta (tutti gli offset a 0, così copre l’item esatto) sopra di esso, lega il background dell’overlay allo stesso campo immagine del CMS e applica FC-ripples="component" all’overlay. Prendi il layout dall’immagine vera e l’effetto dal background — il meglio dei due mondi. Dato che Webflow non ti lascia configurare ogni item CMS singolarmente, metti FC-ripples="group" e FC-ripples-config="gallery" sulla Collection List stessa: lo script raccoglie ogni component dentro quel gruppo e li guida tutti da un unico pannello condiviso. È questo che tiene tutto gestibile anche con decine di item.

Performance e accessibilità sono integrate, non appiccicate. Il WebGL può essere esigente, quindi FC-ripples-disable-mobile dice allo script di saltare del tutto un component sugli schermi piccoli — e in quel caso nascondere il button toggle ha senso, perché non resta nulla da attivare. Quel toggle è un elemento button marcato FC-ripples="toggle" che mette in pausa e riprende l’effetto a runtime; porta un aria-label così gli screen reader annunciano cosa fa, e un aria-pressed che alterna tra true e false per comunicare lo stato attuale. Dare alle persone un modo chiaro per fermare gli effetti carichi di movimento è esattamente il tipo di controllo che offrono i siti fatti bene.

Come si usa

  1. Clona il progetto. Prendi il progetto clonabile Webflow — include la struttura completa, entrambi gli esempi e un unico script commentato per intero (in Page Settings → Before </body>) che carica il plugin jquery.ripples e lil-gui per i pannelli. Una tabella riassuntiva di ogni attributo sta in fondo alla pagina clonata.

  2. Sezione semplice. Dai a una sezione un’immagine di sfondo (background-size: cover, non fixed, senza tiling), poi aggiungi FC-ripples="component". Pubblica e passaci sopra col cursore — hai già i ripple sui default.

  3. Regolala dal vivo (opzionale). Aggiungi FC-ripples-config="hero" per aprire il pannello GUI etichettato sul sito live. Regola resolution, drop radius e perturbance finché non ti convince — guarda la tabella di configurazione qui sopra per cosa fa ciascuno e il suo intervallo utile.

  4. Fissa i tuoi valori. Rimuovi FC-ripples-config, poi aggiungi data-resolution, data-drop-radius e data-perturbance con i numeri su cui ti sei fermato. Ora si carica pronto alla produzione, senza pannello.

  5. Galleria CMS. In ogni Collection Item, tieni il vero <img> per il layout, aggiungi un div overlay (position: absolute, offset pieni, background legato all’immagine CMS, background-size: 100%) e marca l’overlay FC-ripples="component". Sulla Collection List, aggiungi FC-ripples="group" e FC-ripples-config="gallery" per controllare l’intero set da un solo pannello.

  6. Aggiungi le vie d’uscita. Metti FC-ripples-disable-mobile sui component che non devono girare sui telefoni, e inserisci un vero button con FC-ripples="toggle" (più aria-label e aria-pressed) così i visitatori possono mettere in pausa e riprendere l’effetto da soli.

Guida alla configurazione

Attributo Valori Default Cosa fa
FC-ripples component · group · toggle Il marcatore di ruolo che guida tutto. Metti "component" sull'elemento che riceve l'effetto (deve avere un'immagine di sfondo CSS), "group" su un genitore come una Collection List CMS per controllare con una sola config tutti i component al suo interno, e "toggle" su un button che mette in pausa e riprende l'effetto.
FC-ripples-config etichetta libera (es. hero, gallery) Opzionale. Attiva il pannello GUI live per regolare l'effetto nel browser e usa il tuo valore come etichetta del pannello. Rimuovilo prima di pubblicare per nascondere il pannello.
FC-ripples-disable-mobile solo presenza (nessun valore) Opzionale. Disabilita del tutto l'effetto sui dispositivi mobili, dove il WebGL può penalizzare performance e batteria; con questo attivo ha senso nascondere anche il button toggle.
data-resolution intero (64–2048) 512 Risoluzione della texture WebGL che simula la superficie dell'acqua — più alta è più liscia e dettagliata ma usa più GPU. 512–1024 è il punto giusto.
data-drop-radius pixel (1–50) 15 Dimensione di ogni ripple quando viene innescato, come il sasso che lasci cadere nell'acqua. Intorno a 10–15 è elegante e sobrio; 25–30 diventa più splash.
data-perturbance numero (0–0.1) 0.004 Intensità della distorsione applicata allo sfondo, dall'acqua piatta al mare in tempesta. Un buon intervallo con cui giocare è 0.003–0.05.

Risorse

Domande frequenti

Come aggiungo un effetto ripple d'acqua a una sezione Webflow senza codice?
Clona il componente, dai alla sezione un'immagine di sfondo CSS e aggiungi l'attributo FC-ripples="component". Lo script jQuery + WebGL incluso inizializza i ripple in automatico con le impostazioni di default — non tocchi mai il JavaScript.
Perché l'effetto ripple non funziona sulla mia immagine?
Il plugin distorce un'immagine di sfondo con WebGL, non un elemento img nativo. Se hai inserito un'immagine dentro l'elemento, spostala nel background CSS — oppure sovrapponi un div overlay il cui background è quell'immagine — e applica l'effetto a quello.
Come aggiungo i ripple a una galleria CMS di Webflow?
Metti un div overlay in posizione assoluta sopra ogni immagine vera, lega il background dell'overlay al campo immagine del CMS e marcalo FC-ripples="component". Poi aggiungi FC-ripples="group" alla Collection List così un solo pannello condiviso controlla tutti gli item insieme.
Come disabilito l'effetto ripple su mobile?
Aggiungi FC-ripples-disable-mobile al componente. Lo script rileva gli schermi piccoli e salta del tutto l'inizializzazione, il che protegge performance e batteria — e ha senso nascondere anche il button toggle lì, dato che non c'è nulla da attivare.
Come imposto i valori finali dei ripple dopo averli regolati dal vivo?
Annota resolution, drop radius e perturbance su cui ti sei fermato nella GUI, rimuovi l'attributo FC-ripples-config per nascondere il pannello, poi aggiungi data-resolution, data-drop-radius e data-perturbance con quei numeri così l'effetto si carica pronto per la produzione.

← Torna al corso

Fa parte anche di questi corsi