How to add custom cursor in react js?
May 21, 2024Hi Friends π,
Welcome To aHoisting!
To add custom cursor in react js, you have to use document.addEventListener('mousemove', handleMouseMove);
function and .custom-cursor
css. It will add custom cursor in react js.
Today, I am going to show you, how to add custom cursor in react js.
Table of contents
- Install and create a new React app.
- Import react component.
- Create a Component.
Letβs start with the first step.
Step 1: Install and create a new React app.
First you have to install the React project. You should use create-react-app
command to create a new React project.
npx create-react-app my-app
cd my-app
npm start
Step 2: Import react component.
After installing, you have to import your React component. To do this, add the following line to the top of your component file.
import React, { useEffect, useState } from 'react';
import './App.css';
Step 3: Create a Component.
You can use className="custom-cursor"
to add custom cursor in react js.
<div
className="custom-cursor"
style={{ left: `${position.x}px`, top: `${position.y}px` }}
/>
Define the add custom cursor example.
The below code is an example of a React. You have to import './App.css'
and use document.addEventListener('mousemove', handleMouseMove);
function and .custom-cursor
css to add custom cursor in react js.
App.js
import React, { useEffect, useState } from 'react';
import './App.css';
const CustomCursor = () => {
const [position, setPosition] = useState({ x: 0, y: 0 });
useEffect(() => {
const handleMouseMove = (event) => {
setPosition({ x: event.clientX, y: event.clientY });
};
document.addEventListener('mousemove', handleMouseMove);
return () => {
document.removeEventListener('mousemove', handleMouseMove);
};
}, []);
return (
<div
className="custom-cursor"
style={{ left: `${position.x}px`, top: `${position.y}px` }}
/>
);
};
export default CustomCursor;
App.css
.custom-cursor {
position: fixed;
width: 20px;
height: 20px;
background-color: black;
border-radius: 50%;
pointer-events: none;
transform: translate(-50%, -50%);
z-index: 9999;
}
In the above code example, I have used the style={{ left: `${position.x}px`, top: `${position.y}px` }}
css and add custom cursor in react js.
Check the output of the above code example.
All the best π