Parallax-effect voor muisbewegingen

In de begintijd van de spelcomputers maakte men gebruik van parallax om diepte te suggereren. Het is hetzelfde effect wat je hebt als je in de trein zit en je het landschap aan je voorbij ziet trekken: De voorgrond beweegt sneller dan de achtergrond.
In een website kan zoiets ook een mooi effect geven. Het effect wordt geactiveerd door het bewegen met de muis.

Deze techniek is bij uitstek geschikt voor een één-pagina site. Dat is een (meestal) kleine website, die één onderwerp behandelt. Dit soort sites wordt vaak ingezet om kortdurende evenementen te promoten of om iets te presenteren. Soms bevat zo'n site opvallende animaties.

Op deze pagina wordt uit de doeken gedaan hoe je zoiets aanpakt. De code kun je downloaden om zelf te gebruiken, echter zonder de foto.

We beginnen met het voorbeeld, dat opent in een nieuw venster of tabblad. Beweeg de muis en zie hoe de voorgrond en de achtergrond bewegen met verschillende snelheden.

Toon het voorbeeld

Dit is een bewerking van een script dat ik aantrof in Webdesigner Magazine nr. 89 (september 2016), pag. 14 e.v. Dit blad wordt sinds eind november 2017 niet meer gemaakt.
Het oorspronkelijke script is niet meer beschikbaar op internet. De maker van het script is niet bij het betreffende artikel genoemd.

   
Het werkt overigens niet met aanraakschermen, omdat het effect hangt aan de beweging van de muis. Als er wel een muis beschikbaar is in combinatie met een aanraakscherm en Android, werkt het niet in Edge en Chrome, en matig in combinatie met FireFox.

Gebruik:

De code van het voorbeeld ziet er als volgt uit:
 
(Zet dit in de <HEAD>).

<link rel="stylesheet" href="styles.css">
<script>
window.addEventListener("load", function(){
  document.querySelector("main").addEventListener("mousemove",
      function(e){
        document.getElementById('bg').style.left = -e.clientX + "px",
        document.querySelector("main [data-map] > *").style.left
            = -e.clientX+"px";
  });
});
</script>

(Zet dit in de <BODY>).

<main id="bg">
  <article data-map>
    <section>
      <a id="itemA" href="#itemA" data-marker>
        <span data-content>Jantje zag eens pruimen hangen,<br>
        O, als eieren zo groot!</span>
      </a>

      <a id="itemB" href="#itemB" data-marker>
        <span data-content>Hij wou ze gaan plukken,<br>
        maar dat mocht niet van z'n Pa.</span>
      </a>

      <a id="itemC" href="#itemC" data-marker>
        <span data-content>Maar omdat Jantje braaf was,<br>
        kreeg hij zijn hoed vol pruimen.</span>
      </a>
    </section>
  </article>
</main>

Downloaden:
 
Druk op de knop: Download deze code  File: voorb532.zip, 1637 bytes.

 
terug

html-532; Laatste wijziging: 8 april 2022