CodeNewbie Community 🌱

Cover image for Custom cursor with Greensock
Dezigner Bay
Dezigner Bay

Posted on • Edited on

Custom cursor with Greensock

Demo
Hi guys, in this short tutorial, you're going to learn how to create an animated custom cursor with GSAP and basic HTML and CSS. Ok, then, what's this GSAP called?

What is GSAP ?

Greensock Animation Platform(GSAP) is a JavaScript library for creating high-performance animations. Animate CSS, SVG, canvas, React, Vue, WebGL, colors, strings, motion paths, generic objects...anything JavaScript can touch!.GSAP has been tested across all major web browsers – including legacy fares such as Internet Explorer. All browser-related tweaks and fallbacks have already been integrated into the platform.

Why GSAP ?
  • Crazy fast
  • Freakishly robust
  • Compatible
  • Animate anything
  • Lightweight and expandable
  • No dependencies
  • Advanced sequencing

Detailed information

Ok.let's start the coding then.

index.html

<!DOCTYPE html>
<html lang="en" >
<head>
  <meta charset="UTF-8">
  <title>Custom Cursor</title>
  <link href="style.css" rel="stylesheet">
</head>
<body>

<div class="cursor"></div>
<div class="follower"></div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.3.4/gsap.min.js"></script>
<script src="main.js"></script>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

The first thing you need to do is, add gsap.min.js to your index.html.To Install GSAP, you can use the following methods.

Screenshot (381)

after that, import style.css and main.js to your index.html.

style.css


*{cursor: none;}

body{
  background-color:black;
  overflow: hidden;
}

.cursor{
    position: fixed;
    top: 0;
    left: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: #fff;
    z-index: 2000;
    user-select: none;
    pointer-events: none;
}

.follower{
    position: fixed;
    top: 0;
    left: 0;
    width: 100px;
    height: 100px;
    background-color: #6eff00;
    border-radius: 50%;
    opacity: 0.7;
    user-select: none;
    pointer-events: none;
}
Enter fullscreen mode Exit fullscreen mode

main.js

gsap.set('.follower',{xPercent:-50,yPercent:-50});
gsap.set('.cursor',{xPercent:-50,yPercent:-50});

var follow = document.querySelector('.follower');
var cur = document.querySelector('.cursor');

window.addEventListener('mousemove',e => {
    gsap.to(cur,0.2,{x:e.clientX,y:e.clientY});
    gsap.to(follow,0.9,{x:e.clientX,y:e.clientY});
});

Enter fullscreen mode Exit fullscreen mode
gsap.set('.follower',{xPercent:-50,yPercent:-50});
gsap.set('.cursor',{xPercent:-50,yPercent:-50});
Enter fullscreen mode Exit fullscreen mode

Here, the gsap.set() methods always set the follower and the cursor centered on each other when we move the cursor.
Watch the Demo, then you can understand it clearly.

 gsap.to(cur,0.2,{x:e.clientX,y:e.clientY});
Enter fullscreen mode Exit fullscreen mode

gsap.to() specifies the values to which the object is to be animated. Here,0.2 is the duration time of the cursor moves.

The 'clientX' property returns the horizontal mouse pointer coordinate when the mouse event is triggered.

The 'clientY' property returns the vertical mouse pointer coordinate when the mouse event is triggered.

Demo

Latest comments (12)

Collapse
 
suchetaimpinge profile image
suchetaimpinge

ToothFairyAI offers cutting-edge AI solutions in Australia, providing businesses with autonomous AI agents that enhance efficiency and productivity. From AI research and financial analysis to customer retention and compliance, our intelligent agents handle complex tasks 24/7. With seamless system integration, real-time insights, and privacy-first intelligence, ToothFairyAI empowers businesses to scale without increasing headcount. Experience the future of AI with custom, private AI solutions today! AI Agents in Australia

Collapse
 
waylonwesley profile image
waylonwesley

sprunki 2 has something for everyone, from casual gamers looking for a fun journey to serious gamers looking for a challenge. It stands out in the independent game scene because it focuses on discovery, friendship, and creativity.

Collapse
 
posegenuine profile image
posegenuine

The Geometry Dash community is one of the most creative. Thousands of custom levels keep the game fresh and exciting.

Collapse
 
suchetaimpinge profile image
suchetaimpinge

Great article! The insights shared are really valuable for anyone looking to improve their coding skills. As a technical professional, I always emphasize the importance of clean, efficient code and staying updated with the latest best practices. If you're working on multilingual projects or need translation support for technical documentation, International TercΓΌme BΓΌrosu offers expert translation services, ensuring accuracy and clarity across all technical fields. Keep up the excellent work!

Collapse
 
suchetaimpinge profile image
suchetaimpinge

Great article! The insights shared are really valuable for anyone looking to improve their coding skills. As a technical professional, I always emphasize the importance of clean, efficient code and staying updated with the latest best practices. If you're working on multilingual projects or need translation support for technical documentation, International TercΓΌme BΓΌrosu offers expert translation services, ensuring accuracy and clarity across all technical fields. Keep up the excellent work!

Collapse
 
felixandrea profile image
felixandrea

Here's a quick tutorial on how to change the background color of a website dynamically by choosing a color from the custom color picker. The main idea is to use CSS variables to store and change the background color.
Highlights: rice purity test

  • Use Google Fonts fonts to decorate the website
  • Simple HTML structure with 4 main divs
  • Use the :root CSS variable to define the default background color
  • Use JavaScript to listen to the input event of the color input and update the CSS variable value accordingly
Collapse
 
niaernes profile image
niaernes

Geometry Dash Game is a game the whole family can enjoy together. It's a great way to bond and create some hilarious memories. ‍‍‍

Collapse
 
ratkefletcher profile image
ratkefletcher

That's cool. How might you give the dot a straightforward click animation? Is this doable with GSAP (maybe shrink the dot a little onclick)?

hill climb racing

Collapse
 
larsenlola profile image
Johnathan Dorsey

GSAP provides options like timeline control, drift hunters, easing, keyframes, callbacks, etc. to finely customize animations.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.