-
Notifications
You must be signed in to change notification settings - Fork 322
Expand file tree
/
Copy pathcursor.js
More file actions
35 lines (25 loc) · 736 Bytes
/
Copy pathcursor.js
File metadata and controls
35 lines (25 loc) · 736 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const cursor = document.querySelector(".cursor");
const circles = document.querySelectorAll(".circle");
let mouseX = 0;
let mouseY = 0;
const positions = Array.from(circles).map(() => ({ x: 0, y: 0 }));
window.addEventListener("mousemove", (e) => {
mouseX = e.clientX;
mouseY = e.clientY;
cursor.style.left = mouseX + "px";
cursor.style.top = mouseY + "px";
});
function animate() {
let x = mouseX;
let y = mouseY;
positions.forEach((pos, i) => {
pos.x += (x - pos.x) * 0.3;
pos.y += (y - pos.y) * 0.3;
circles[i].style.left = pos.x + "px";
circles[i].style.top = pos.y + "px";
x = pos.x;
y = pos.y;
});
requestAnimationFrame(animate);
}
animate();