Skip to main content

useMouse

Hook to track the mouse position relative to a specified element.

Usage

Live Editor
function App() {
	const elementRef = useRef(null);
	const { x, y, elementX, elementY, pageX, pageY } = useMouse(elementRef);

	return (
		<div
			ref={elementRef}
			style={{ height: "500px", border: "1px solid black" }}
		>
			<h1>Mouse Position</h1>
			<p>
				Relative to Element - X: {x}, Y: {y}
			</p>
			<p>
				Element X: {elementX}, Element Y: {elementY}
			</p>
			<p>
				Page X: {pageX}, Page Y: {pageY}
			</p>
		</div>
	);
}
Result
Loading...

API

Parameters

  • ref : elementRef - The ref to the element to track mouse position.

Returns : An object with the following properties:

  • x : number - The x position of the mouse relative to the element.
  • y : number - The y position of the mouse relative to the element.
  • elementX : number - The x position of the mouse relative to the viewport.
  • elementY : number - The y position of the mouse relative to the viewport.
  • pageX : number - The x position of the mouse relative to the page.
  • pageY : number - The y position of the mouse relative to the page.