Parallax scrolling: come rendere più piacevole la UX [case history]

Il parallax scrolling è una tecnica ormai molto sviluppata nel frontend development. Parallax, in italiano parallasse, deriva dal greco e significa accavallamento: il principale effetto ottenuto comporta la sovrapposizione di vari elementi all’interno della nostra pagina, che si spostano allo scroll a velocità differenti. In motion graphic questo espediente veniva utilizzato ancor prima di vederlo nel web, per ottenere un effetto tridimensionale in cui le immagini di sfondo si muovono più lentamente rispetto a quelle in primo piano.

Quando utilizzare il parallax scrolling

È possibile ottenere un perfetto effetto di parallax scrolling su pagine relativamente lunghe: questo ci permette di avere lo “spazio di manovra” necessario per scorrere la pagina e notare l’accavallamento degli elementi a velocità differenti. L’effetto non deve essere eccessivamente evidente, bastano veramente pochi accorgimenti per rendere lo scrolling più piacevole e fluido, rispetto allo standard lineare.

Grazie al parallax scrolling, l’utente si sentirà catapultato all’interno della pagina e delle immagini, creando fantastici effetti tridimensionali e di zoom. L’effetto può essere applicato sia a fotografie che a elementi di UI ma anche a caratteri tipografici e pattern di sfondo.

Come progettare una pagina web con il parallax scrolling

Progettare una pagina web con l’effetto del parallax scrolling, comporta uno studio approfondito della struttura della pagina e degli effetti che i vari elementi dovranno possedere al momento dello scroll.

Per lo sviluppo della home page e di alcune pagine interne del sito Souvenir Clubbing abbiamo prima di tutto realizzato dei wireframe, ovvero uno schema dei contenuti della pagina, completamente in bianco e nero. Questo ci ha permesso di studiare gli effetti principali e a quali velocità si dovevano muovere.

Parallax Scrolling - Come progettare un effetto parallasse aiutandosi con i wireframe
I wireframe ci permettono di definire gli ingombri e le varie tipologie di spostamento.

Con i wireframe è possibile eliminare ogni tipo di distrazione da colori, immagini e tipografia: tutta l’attenzione è dedicata alla gerarchia dei contenuti e alla User Experience.

Lo sviluppo frontend del parallax scrolling

Per questo progetto abbiamo deciso di affidarci ad un potente plugin jQuery che ci ha permesso di realizzare ogni effetto di parallax scrolling nel modo più preciso e fluido possibile: il suo nome è Skrollr e lo potete scaricare dalla sua repository github a questo link: https://github.com/Prinzhorn/skrollr.

Associato al grid system del nostro Framaework, siamo stati in grado di gestire ogni elemento in maniera tale che ogni effetto di scrolling avvenisse esattamente al momento desiderato: il sistema di ancoraggio di Skrollr riesce a gestire i breakpoints in modo molto preciso.

Schema per gestire i breakpoints di Skrollr
Schema per gestire i breakpoints di Skrollr

Conclusioni

In conclusione, sviluppare una pagina con l’effetto del parallax scrolling necessità degli accorgimenti specifici che ci permettono di ottenere uno scrolling piacevole, migliorare la User Experience delle nostre pagine e dare quel tocco di dinamicità a qualsiasi tipo di contenuto ma attenzione: senza il dovuto studio e progettazione l’effetto può risultare invadente e abbassare parecchio le prestazioni, creando scatti e delay durante la navigazione.

Potete visionare il risultato del nostro lavoro sul sito www.souvenirclubbing.net o guardare un anteprima del parallax con il video sottostante.

Il 3d Nei browser: WebGL contro CSS 3D Transforms

Il WebGL e le CSS 3D transforms sono due delle principali tecniche per realizzare effetti 3D nei browser, in questi primi anni il supporto per questi sistemi era veramente scarso ma in un breve lasso di tempo molto è cambiato e, noi di RAD ci teniamo a rimanere sempre aggiornati sulle ultime tecnologie e tendenze dello sviluppo web, per poter fornire prodotti innovativi e all’avanguardia: scopriamo insieme come possiamo sfruttare le tecnologie 3D all’interno dei nostri siti web!

CSS 3D Transforms

Concepire degli effetti 3D all’interno dei nostri siti web ha un suo senso logico: come per tutti gli altri tipi di strutture 2D, l’HTML continua a progettare la struttura e il CSS 3D Transforms si occuperanno invece di realizzare la parte grafica (naturalmente in questo caso in 3D), proprio come avrebbe fatto un normale foglio di stile CSS. Fino a qui penso sia tutto molto semplice e logico per chiunque si intenda un po’ di linguaggi di markup, non continuerò comunque questo articolo con guide sulle proprietà delle CSS 3D Transforms, lo scopo di questo post sarà quello di illustrare una veloce presentazione delle potenzialità di questo nuovo CSS attraverso alcuni interessanti progetti che sarai libero di visionare.

Shading and Multiplaning

Questi termini inglesi stanno a significare ombreggiatura e livelli multipli, grazie ad essi, è possibile realizzare degli effetti che diano la sensazione di tridimensionalità, anche l’ormai famoso parallax scrolling si basa proprio su questi due concetti: i vari contenuti, che siano scritte, elementi grafici o immagini, viaggiano a diverse velocità su dei livelli multipli e, con ombreggiature e sfuocature, è possibile accentuare l’effetto di profondità.

Un altro valido esempio che utilizza gli stessi principi può essere visionato nel progetto di Nick Pettit: il Multiplane Design. In questo progetto, Nick  riesce a ricreare un effetto di profondità 3D, grazie ai movimenti dei pannelli sull’asse Z a velocità differenti che avvengono nel momento in cui si prova a scrollare la pagina con il mouse.

Rad - multiplane_landscape_layers 3d
Immagine che illustra i livelli del multiplane per creare effetti 3D

Modellazione di oggetti 3d

Oltre a questi metodi appena illustrati, è stato sviluppato un editor molto interessante, chiamato Tridiv: si comporta come un qualsiasi altro software di modellazione 3D da desktop, con diversi strumenti per modellare gli oggetti e modificare la posizione della camera. La cosa sorprendente sta nel poter incollare i codici all’interno delle nostre pagine web per ricreare delle perfette copie 3D, tutto utilizzando solamente HTML e CSS.

RAD - 3d x-wing - Tridiv

WebGL

Il WebGL è completamente differente dall’HTML e il CSS, esso infatti è renderizzato attraverso il tag <canvas>, questo permetterà di realizzare un oggetto non intrusivo rispetto al resto della pagina, ed isolato in un suo contesto specifico. Questo comunque non è un aspetto particolarmente negativo poiché il canvas fa a tutti gli effetti parte del DOM e non avrà particolari difficoltà ad essere flessibile con il resto degli elementi della pagina.

Andiamo adesso ad elencare alcuni strumenti e progetti che ci potranno essere utili per sfruttare il WebGL:

Three.js

Uno dei più importanti progetti WebGL è three.js, strumento molto utile che ci fornisce  API per render, ombre, camere, luci ed effetti di ogni genere! C’è pure una community che carica in rete demo e tutorial per aiutarci a partire a sviluppare progetti WebGL.

Voodoo.js

Un’altro dei migliori progetti WebGl è Voodoo.js poichè permette di eliminare alcuni limiti che ci vengono imposti quando utilizziamo l’elemento canvas. Usando un codice intelligente (che alcuni chiamano appunto voodoo) avrete la possibilità di mischiare elementi WebGL con del normale HTML: cliccate sul link alla pagina ufficiale di Voodoo.js e scrollate la home page per vedere gli effetti parallasse d’esempio, provate inoltre ad evidenziare il testo della citazione a fondo pagina per vedere come l’anello dorato ci passa nel mezzo: è un normalissimo testo html ma magicamente un anello realizzato con WebGL fluttua intorno ad esso!

Chrome Experimets

Se non sei ancora rimasto impressionato da tutto ciò, ti invito ad andare a vedere gli esperimenti WebGL di Chrome Experiments: ognuno di essi è praticamente spettacolare e ti mostrerà tutte le potenzialità che il WebGL può offrire. Vale la pena visionare Delight Engine demo, nel quale sono presenti degli effetti di luce in tempo reale, degni di un gioco da console.

Siete pronti a sviluppare il vostro primo progetto 3D?

Ora che ti ho illustrato alcuni dei principali metodi per utilizzare effetti 3D sul web non ci resta altro che sviluppare insieme un progetto che faccia stupire tutti quelli che lo visioneranno: per maggiori informazioni scrivici dalla pagina dei contatti!

Contattaci per maggiori informazioni

Ti lascio infine a delle  slide di Google che riassumono il 3D con degli esempi molto interessanti.