Easy parallax, dalla teoria alla pratica in dieci secondi

Koala - domenica 25 Agosto

Ho cercato abbastanza in giro tanto da incazzarmi nel non trovare una guida teorica/pratica veloce per capire questa meravigliosa tecnica.
Il parallax è una tecnica che negli ultimi tempi si sta espandendo molto, non riesco nemmeno a contare tutti i siti che la usano. Un classico esempio è il 404 di github che utilizza un parallax, non sullo scroll (come vi esporrò in questa guida) ma sul movimento del mouse (Il concetto è lo stesso).

Cosa significa parallax?

Il termine deriva dal greco παράλλαξις (paràllaxis), che significava originariamente accavallamento

So che non vi interessa ma mi sembrava carino copiarlo da wikipedia scriverlo.

La teoria

E’ veramente semplice; questo effetto si basa sul “rallentare il background mentre scrolliamo” quindi basterà dare un evento onScroll con all’interno qualche operazioncina che faccia diminuire il background-position nel mentre scrolliamo.

Lo stesso accade se abbiamo più wrapper, basterà solamente diminuire il background-position di ognuno scalando dal primo all’ultimo o vice versa.

La pratica

Eheh, è davvero molto molto semplice, ma un esempio è bene farlo lo stesso.
Prendiamo la nostra testata, le nuvolette, se qualcuno di voi l’avesse notato c’è un leggerissimo parallax, giusto per dare un tocco di dinamicità al sito.

home.html

<!doctype html>
<html lang="en">
<head>

  <meta charset="UTF-8">
  <title>hParallax</title>
  <link rel="stylesheet" href="main.css">

</head>
<body>

  <div class="main"></div>

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  <script src="main.js"></script>

</body>
</html>

.main sarà il wrapper per il nostro parallax, passiamo al semplice CSS di base:

main.css

body {
  height: 2000px
}

.main {
  width: 100%;
  min-height: 300px;
  margin-top: 10em;
  background-image: url('https://aitch.me/wp-content/themes/aitchWP/img/bgi.png');
  background-repeat: no-repeat;
}

E’ solo un CSS di esempio per una stupida pagina di esempio, al wrapper assegniamo un background statico.
Ma vediamo il vero core:

main.js

$(document).ready(function() {

  $(window).scroll(function() {
   $('.main').css('background-position', '0 -' + ($(window).scrollTop() / 2) + 'px');
  });

});

Questo è il centro del nostro script: il background del wrapper ad ogni nostro scroll effettuerà un movimento contrario lungo la metà di quanto abbiamo scrollato. Semplice ma efficace.

Potete vedere una veloce demo su codepen QUI

Questa stupida guida è davvermo MOLTO basilare, ma ho voluto farla per la semplice ragione di far capire a tutti questo effetto nel più semplice dei modi.

 

 

Theme made by Koala