Tutoriel : créer un effet de parallaxe avec jQuery

Vous avez certainement déjà visité un site en une seule page ou les articles se succèdent les uns à la suite des autres sur un même document.
Ces pages utilisent souvent un effet parallaxe pour ajouter un plus au webdesign du site.

Mais qu’est-ce que l’effet parallaxe ? L’effet de parallaxe consiste à faire défiler différents plans à des vitesses différentes.
Par exemple, un objet placé en arrière plan défilera plus lentement qu’un objet au premier plan.
Ce phénomène se retrouve dans la réalité. Si vous masquez un objet avec votre main et que vous déplacer votre œil, l’objet masqué apparaît de chaque côté, parce qu’il ne se déplace pas à la même vitesse que votre main.

Dans cet article, vous trouverez un code simple pour faire défiler des images à des vitesses différentes.

Voici le code complet pour réaliser un effet de parallaxe pour un défilement vertical.

Code CSS à mettre entre les balises <style> et </style>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
   
#img1 {
background: url('/image-mouette.png');
width: 640px;
height: 427px;
opacity: 0.1;
position: fixed;
top: 0px;
left: 250px;
margin-top: 50px;
z-index: 1;
}
#img2 {
background: url('/image-mouette.png');
width: 640px;
height: 427px;
opacity: 0.5;
position: fixed;
top: 0px;
left: 250px;
margin-top: 150px;
z-index: 2;
}
section {
width: 100%;
height: 2000px;
background-color: #dddddd;
}
body{
margin: 0px;
}

Code Javascript - JQuery à mettre entre les balises <script> et </script>

1
2
3
4
5
6
7
8
9
10
  

$(window).scroll(function(e){
parallax();
});
function parallax(){
var scrolled = $(window).scrollTop();
$('#img1').css('top', -(scrolled * 0.1) + 'px');
$('#img2').css('top', -(scrolled * 0.3) + 'px');
}

Vous êtes impatient de visualiser le résultat : Effet parallaxe

Regardons de plus près le code de cette page HTML.

  • La première partie utilise une feuille de style css pour positionner  deux div dont l’id est img1 et img2. Ces blocs de contenus ont comme image de fond une mouette. Ce sont ces images qui donneront l’effet parallaxe. Ces div sont positionnées en “fixed”. Le décalage par rapport au dessus de l’image se fait avec margin-top et non top pour éviter des problèmes de déplacements relatifs.

  • La seconde partie HTML correspond juste aux deux div sur lesquel l’effet parallaxe sera effectué?

  • La troisième partie concerne le javascript et jquery. On commence par charger la bibliothèque jQuery. Ensuite, on récupère l’événement scroll de l’objet window. Lorsqu’on fait défiler la fenêtre, la fonction parallax est appelée qui modifie l’attribut “top” des blocs contenant les mouettes, ce qui donne un défilement différent pour chacun d’un.

  • Ce sont les valeurs de top qu’il faut modifier pour changer l’effet parallaxe. Pour le positionnement initial par rapport au haut de page, il faut modifier le margin-top des css.

Ce petit tutoriel est maintenant terminé. J’espère qu’il vous aura aider dans vos créations?

N’hésitez pas à le partager.

Partager