Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Snake Like Effect using CSS and JavaScript

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

In this article, we will see how to create a Snake Like Effect by using CSS and JavaScript.

CDN Link: Include the following GSAP library in your HTML code.

<script src=”https://cdnjs.cloudflare.com/ajax/libs/gsap/3.6.0/gsap.min.js”></script>

Approach :

  • We have taken a div tag named snake which is an instance of the full snake. We have taken circle, we can take another shape by using simple CSS.
  • We have created more divs to give the length of the snake. We can include more div tags to increase its length.
  • document.body.addEventListener(“mousemove”): This function in JavaScript attaches a moving mouse event to the document. When the user moves the mouse pointer anywhere in the document, the event which is being mentioned occurs.
  • e.clientX: Get the horizontal coordinate.
  • e.clientY: Get the vertical coordinate.
  • stagger :For delay in animation (0.05 sec),  we can see the snake.
  • gsap.to(“.snake”): It will track the snake with reference to pointer coordinates.

Example: 

HTML




<!DOCTYPE html>
<html>
<head>
      
    <style type="text/css">
        /* Area part for snake */
          
    </style>
</head>
<body>
    <div class="area">
        <!-- You can add more divs for a long snake-->
        <div class="snake"></div>
        <div class="snake"></div>
        <div class="snake"></div>
        <div class="snake"></div>
        <div class="snake"></div>
        <div class="snake"></div>
        <div class="snake"></div>
        <div class="snake"></div>
        <div class="snake"></div>
        <div class="snake"></div>
    </div>
  
<!-- GSAP Library -->
<script 
</script>
  
<!-- JavaScript Code for mouse event -->
<script type="text/javascript">
    document.body.addEventListener("mousemove", e => {
        gsap.to(".snake", {
            x : e.clientX,
            y : e.clientY,
            stagger : -0.05,
        })
        })
</script>
</body>
</html>


CSS




.area {
     width: 80px;
     height: 80px;
     position: relative;
}
/* Designing of a part of snake (here circle) */
 .area .snake {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background: rgb(3, 171, 15);
     border: 2px solid white;
     border-radius: 50%;
}


Output: Click here to see live code output

As you can see from the above output, we have created a snake that follows our mouse pointer making it look like a Snake-like effect.


My Personal Notes arrow_drop_up
Last Updated : 15 Feb, 2023
Like Article
Save Article
Similar Reads
Related Tutorials