about us section
This commit is contained in:
parent
71c97cd281
commit
41f2797651
12 changed files with 425 additions and 61 deletions
55
app/about/page.tsx
Normal file
55
app/about/page.tsx
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
import React, { useRef, useEffect, useState } from "react";
|
||||
|
||||
const MouseTrackingGlowEffect: React.FC = () => {
|
||||
const [position, setPosition] = useState({ x: 0, y: 0 });
|
||||
const [isHovered, setIsHovered] = useState(false);
|
||||
const containerRef = useRef<HTMLDivElement>(null);
|
||||
|
||||
useEffect(() => {
|
||||
const handleMouseMove = (event: MouseEvent) => {
|
||||
setPosition({ x: event.clientX, y: event.clientY });
|
||||
};
|
||||
|
||||
const handleMouseEnter = () => {
|
||||
setIsHovered(true);
|
||||
};
|
||||
|
||||
const handleMouseLeave = () => {
|
||||
setIsHovered(false);
|
||||
};
|
||||
|
||||
const container = containerRef.current;
|
||||
|
||||
if (container) {
|
||||
container.addEventListener("mousemove", handleMouseMove);
|
||||
container.addEventListener("mouseenter", handleMouseEnter);
|
||||
container.addEventListener("mouseleave", handleMouseLeave);
|
||||
}
|
||||
|
||||
return () => {
|
||||
if (container) {
|
||||
container.removeEventListener("mousemove", handleMouseMove);
|
||||
container.removeEventListener("mouseenter", handleMouseEnter);
|
||||
container.removeEventListener("mouseleave", handleMouseLeave);
|
||||
}
|
||||
};
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div
|
||||
ref={containerRef}
|
||||
className="relative w-screen h-screen overflow-hidden"
|
||||
>
|
||||
<div
|
||||
className={`absolute top-0 left-0 w-64 h-64 bg-blue-500 rounded-full filter ${
|
||||
isHovered ? "blur-xl" : "blur-none"
|
||||
}`}
|
||||
style={{
|
||||
transform: `translate(${position.x - 32}px, ${position.y - 32}px)`,
|
||||
}}
|
||||
></div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default MouseTrackingGlowEffect;
|
||||
Loading…
Add table
Add a link
Reference in a new issue