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

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, and 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.

HTML




<!-- Filename: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=
"https://media.w3wiki.net/wp-content/uploads/20210101144014/gfglogo.png"
            class="mouse"
            value="5" />
        <h2>w3wiki</h2>
        <img id="img2" src=
"https://media.w3wiki.net/wp-content/cdn-uploads/20190710102234/download3.png"
            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. 



Contact Us