Nel tutorial di oggi useremo JavaScript per creare un effetto di parallasse semplice, flessibile in cui un logo sembra cambiare colore con lo sfondo in cui si trova quando l'utente scorre.
Creeremo un elemento "predefinito" che rimane fedele al suo posizionamento (posizione: fissa
), e un gruppo di elementi "mobili" la cui posizione dipende da quell'elemento "predefinito". Useremo JavaScript per farlo accadere ogni volta che l'utente scorre.
Nota: per coprire tutte le basi ho fornito la spiegazione in formato video e scritto.
Iscriviti a Tuts + Web Design su Youtube
Inizieremo creando un paio di elementi contenenti. Facciamo uno dei loro sfondi scuri e una luce in modo da poter contenere un'immagine contrastante. Andiamo avanti e rendiamo la nostra prima immagine l'immagine "predefinita" dandole una classe di predefinito
, mentre le altre immagini otterranno la classe di mobile
.
Ora assicuriamoci che le nostre immagini non finiscano per scorrere all'esterno dei loro contenitori impostando overflow: nascosto
. Andremo avanti e diciamo che questi contenitori hanno una posizione relativa, quindi gli elementi posizionati in modo assoluto si allineeranno a questi contenitori anziché direttamente all'elemento fisso quando scriviamo il nostro JavaScript.
Per motivi di scorrevolezza, diamo a questi contenitori a min-height
di intorno 400px
. E per tenere il nostro logo lontano dai bordi, diamo loro un po ' imbottitura
di 1em
.
.container overflow: hidden; posizione: relativa; altezza minima: 400 px; imbottitura: 1em;
Ogni contenitore ha bisogno di un colore contrastato così:
.dark background: # 333; .light background: #fff;
E infine, come promesso, impostiamo il nostro CSS predefinito e mobile in modo che uno sia bloccato con la pagina mentre l'utente scorre, e l'altro si sta spostando con esso senza imbattersi in altri elementi:
.default position: fixed; .moveable position: absolute;
Quello dovrebbe occuparsi del markup e dello styling. Se visualizzi la pagina, dovresti vedere il logo predefinito scorrere verso il basso e nascondersi dietro gli altri contenitori, mentre tutti i loghi mobili dovrebbero apparire come normali elementi nell'angolo in alto a sinistra dei rispettivi contenitori.
Ora per la parte divertente, farlo funzionare con JavaScript.
Innanzitutto caricheremo jQuery e il nostro script personalizzato nella parte inferiore del nostro index.html
: