Skip to content
Related Articles

Related Articles

How to create mousemove parallax effects using HTML CSS & Javascript ?

Improve Article
Save Article
  • Difficulty Level : Medium
  • Last Updated : 24 Aug, 2021
Improve Article
Save Article

In this article, we will learn to create a Mousemove parallax effect using CSS and JavaScript. In the Mousemove parallax effect, an image moves in a different direction at a different speed when we move the cursor. Parallax effects are used to make the website more attractive and increase the interactivity level of the website. The parallax effect is a way to scroll or move the foreground & background images at different speeds in different directions. We can use either of the combination ie, a text with an image or an image with an image, to create the parallax effect. 

Approach: 

  • In the <body> tag, create a <div> tag to assign some images on which the parallax effect is to be applied, assign a class name and value attribute to each image that is responsible for the amount of shifting of the image.
  • For the CSS stylings, add some CSS properties in the style tag such as position and size of images.
  • We have taken the help of JavaScript to implement the parallax effect. In the snippet given under the script tag, we have created a function parallax that uses the class name of the img tag to get the value for positioning and shifting purposes.

Example: In this step, we will create a movemouse parallax effect using the above approach.

index.html




<!DOCTYPE html>
<html lang="en">
  <head>
    <style>
      * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: sans-serif;
      }
      body {
        background-color: rgb(102, 189, 16);
      }
      .mouse_move {
        position: relative;
        width: 100%;
        height: 100vh;
        overflow: hidden;
        display: flex;
        justify-content: center;
        align-items: center;
      }
      .mouse_move h2 {
        position: relative;
        font-size: 100px;
        color: white;
      }
  
      .mouse_move img {
        position: absolute;
      }
      #img1 {
        top: 80px;
        left: 80px;
        height: 250px;
        width: 250px;
      }
      #img2 {
        bottom: 80px;
        right: 80px;
        height: 250px;
        width: 250px;
      }
    </style>
    <title>Parallax</title>
  </head>
  <body>
    <div class="mouse_move">
      <img
        id="img1"
        src=
        class="mouse"
        value="5"/>
      <h2>GeeksforGeeks</h2>
      <img
        id="img2"
        src=
        class="mouse"
        value="-5"/>
    </div>
  
    <script type="text/javascript">
      document.addEventListener("mousemove", parallax);
      function parallax(event) {
        this.querySelectorAll(".mouse").forEach((shift) => {
          const position = shift.getAttribute("value");
          const x = (window.innerWidth - event.pageX * position) / 90;
          const y = (window.innerHeight - event.pageY * position) / 90;
  
          shift.style.transform = `translateX(${x}px) translateY(${y}px)`;
        });
      }
    </script>
  </body>
</html>

Output:

From the above example, you can see that when we move the cursor from one direction to another the images start floating or shifting. 


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!