Vediamo come realizzare un sito completamente scrollabile di notevole impatto grazie all’uso di poche righe di codice JQuery.
Lo scroll è una funzione messa a disposizione da jQuery che può risultare molto interessante da implementare in siti semplici e non troppo ricchi di contenuti in quanto ci permette di muoverci in sotto-pagine utilizzando l’effetto di easing desiderato.
[lightgrey_box]Avviso: nel nostro archivio è presente anche un’altra possibile variante su come realizzare un sito scrollabile. Se ti va puoi consultare l’articolo QUI. [/lightgrey_box]
[button link=”http://www.targetweb.it/tutorial/2012/scrollable-site-jquery/scrollable.html” color=”blue” target=”blank”]Scopri la Demo[/button]
Vediamo come realizzare una pagina del genere partendo dalla struttura HTML e definendo alcune righe di CSS:
Struttura HTML
<div id="container"> <div class="sezione" id="sezione1" style="background-color:#2674dd;"> <ul> <li>sezione1</li> <li><a href="#sezione2">sezione2</a></li> <li><a href="#sezione3">sezione3</a></li> <li><a href="#sezione4">sezione4</a></li> </ul> </div> <div class="sezione" id="sezione2" style="background-color:#4d26dd;"> <ul> <li><a href="#sezione1">sezione1</a></li> <li>sezione2</li> <li><a href="#sezione3">sezione3</a></li> <li><a href="#sezione4">sezione4</a></li> </ul> </div> <div class="sezione" id="sezione3" style="background-color:#2696dd;"> <ul> <li><a href="#sezione1">sezione1</a></li> <li><a href="#sezione2">sezione2</a></li> <li>sezione3</li> <li><a href="#sezione4">sezione4</a></li> </ul> </div> <div class="sezione" id="sezione4" style="background-color:#44b8da;"> <ul> <li><a href="#sezione1">sezione1</a></li> <li><a href="#sezione2">sezione2</a></li> <li><a href="#sezione3">sezione3</a></li> <li>sezione4</li> </ul> </div> </div>
Stili CSS
html,body { margin: 0; padding: 0; } .sezione { float:left; position:relative; } .sezione a { color:black; text-decoration: none; } .sezione ul { float:left; list-style: none; } .sezione li { float:left; margin-left:20px; }
E ora passiamo allo script in jQuery: con questo definiamo le dimensioni delle sotto-pagine e gestiamo l’animazione. Se vi state chiedendo perché usiamo jQuery per definire le dimensioni e non il foglio di stile (css) la risposta è semplice: le sotto-pagine devono avere altezza e larghezza pari alle dimensioni della finestra del nostro browser, dimensioni che non possono essere ricavate attraverso il css.
Script jQuery Completo
$(document).ready(function() { // definisco dimensioni var width = $(window).width(); var height = $(window).height(); $('#container').width(width*2); $('#container').height(height*2); $('.sezione').width(width); $('.sezione').height(height); var elem; $('.sezione ul li a').click(function() { elem = $(this); $('html, body').stop().animate({ scrollTop: $(elem.attr('href')).offset().top, scrollLeft: $(elem.attr('href')).offset().left }, 1000,'easeInOutExpo'); event.preventDefault(); }); });
Il click su una delle voci del menu solleverà l’animazione che sfrutterà le funzioni di scrollTop e scrollLeft per “muovere” il visitatore verso la sezione richiesta. Come si può immaginare la funzione scrollTop() agisce sull’asse Y mentre la funzione scrollLeft sull’asse X, l’unione di queste due funzioni all’interno dell’animazione garantisce lo spostamento diagonale nei casi in cui nasce questa necessità.
Conclusioni e Download
Una soluzione sicuramente di notevole impatto e facile da realizzare, un must have per tutti i web designer e programmatori. Di seguito vi lascio ai link per la demo e il download dello script:
[button link=”http://www.targetweb.it/tutorial/2012/scrollable-site-jquery/scrollable.html” color=”blue” target=”blank”]Scopri la Demo[/button]
[viral-download file1=”http://www.targetweb.it/download/2012/scrollable-site-jquery.zip” name1=”Sito Web scrollabile Jquery” url=”http://www.targetweb.it/come-realizzare-un-sito-completamente-scrollabile-con-jquery” message=”Per scaricare il file devi prima condividere su un social network:” tweet=”Come realizzare un sito completamente scrollabile con #jQuery ” thankyou=”Grazie per aver condiviso! Ecco il link qui sotto:”/]
Se ti è piaciuto l’articolo condividilo sui tuoi social network preferiti oppure commenta per lasciare la tua opinione!
Interessante e tempestivo.. Mi chiedo se è possibile inserire questa soluzione in una qualsiasi delle pagine di un sito, credo di si..
L’idea è quella di usare lo scrollabile al posto di un tab.
Con IE funziona tutto..?
Si lo script funziona anche su IE e lo puoi utilizzare in qualsiasi pagina del tuo sito
Ok grazie, mi metto all’opera..
fichissimo!! grazie !!!
Scusami questa istruzione event.preventDefault(); a cosa serve?
Grazie
Risolve l’effetto ancora “torna su” tipico dei link. Equivale (anche se c’è una sottile differenza) a return false di jQuery.
aah ho capito!!! grazie 🙂
Bell’articolo.. molto utile, me lo segno!
Scusa, ma non manca la chiusura del container?!?!
Ora non per creare litigi, ma perché mi sembra tanto una copia di questo articolo?
http://www.yourinspirationweb.com/2012/06/05/come-sviluppare-un-sito-con-scroll-animato/
Ciao Alberto, premesso che bisognerebbe sempre firmarsi nei commenti lasciando quantomeno la propria email (sempre che non si abbia qualcosa da nascondere), ad ogni modo lo farò presente all’autore dell’articolo (che non sono io come si vede chiaramente credo). Ad ogni modo se ti soffermi a leggere il codice noterai che è stato cambiato anche se, come suggerivi, più o meno il “succo” è il medesimo. Oltre a questo noterai che la spiegazione al codice e il testo non è “copiato” come dici tu. Ora passo la parola all’autore dell’articolo.
Ciao Alberto scusa se ti rispondo solo ora 🙂 Per quanto riguarda l’articolo non è stato copiato nonostante sia evidentemente simile. Oltre alla spiegazione del codice, evidentemente diversa, puoi notare differenze anche nel codice, seppur minime! Ora non è nel mio interesse dimostrarti che non è stato copiato, tuttavia metterei la mano sul fuoco nel dire che se cercassi un altro pò nel web troveresti molte altre guide simili a queste due dal momento che non vedo molti altri metodi per raggiungere lo scopo dell’articolo in altra maniera. Buona serata 🙂
Non vedo per quale motivo dovrei darti la mia e-mail, comunque Riccardo, hai detto:
Ad ogni modo se ti soffermi a leggere il codice noterai che è stato cambiato
quindi è come se mi avessi detto che l’avete solamente modificato, però penso sia stato un tuo errore, forse volevi semplicemente dire che è diverso e non è per niente copiato…
Per quanto riguarda Carlo, è ovvio che “se assomiglia non è uguale” per cui è inutile dire che la parte concernente la spiegazione è diversa, perché mi sembra ovvio.
Io parlavo dei codici e, come hai detto tu:
puoi notare differenze anche nel codice, seppur minime
Comunque abbiamo risolto e tengo a precisare che non volevo creare nessun tipo di problema, ho solo fatto notare che questo articolo è simile a quello linkato precedentemente da me ed ora le spiegazioni mi sono state date.
Bye
Certo certo, la tua è stata una giusta osservazione, io in quanto autore posso dirti che non è stato copiato 🙂 Buon fine settimana!