Socket
Book a DemoInstallSign in
Socket

@react-hook/mouse-position

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@react-hook/mouse-position

A React hook for tracking the position of the mouse as it moves around an element.

Source
npmnpm
Version
3.2.0
Version published
Maintainers
1
Created
Source

useMousePosition()

Bundlephobia Types NPM Version MIT License

npm i @react-hook/mouse-position

A React hook for tracking the position of the mouse as it moves around an element. This hook also provides an interop between touch and desktop devices and will treat ontouch events the same as onmouse ones.

Quick Start

import useMousePosition from '@react-hook/mouse-position'

const Component = props => {
  const [mousePosition, ref] = useMousePosition(
    0, // enterDelay
    0, // leaveDelay
    30 // fps
  )

  return (
    <div ref={ref}>
      Hover me and see where I am relative to the element:
      <br />
      x: ${mousePosition.x}
      y: ${mousePosition.y}
    </div>
  )
}

API

useMousePosition(enterDelay?: number, leaveDelay?: number, fps?: number)

Arguments

ArgumentTypeDefaultDescription
enterDelaynumber0The amount of time in ms to wait after an initial action before setting mousemove events to state
leaveDelaynumber0The amount of time in ms to wait after a final action before setting mouseleave events to state
fpsnumber30The rate in frames-per-second that the state should update

Returns [state: MousePosition, ref: (element: HTMLElement | null) => void]

VariableDescription
stateThe mouse position data for the ref'd element
refThe callback ref you must provide to the element you want to track mouse data position of

state: MousePosition

KeyTypeDefaultDescription
xnumbernullMouse position relative to the left edge of the element, null if mouse is not over the element
ynumbernullMouse position relative to the top edge of the element, null if mouse is not over the element
pageXnumbernullMouse position relative to the left edge of the document, null if mouse is not over the element
pageYnumbernullMouse position relative to the top edge of the document, null if mouse is not over the element
clientXnumbernullMouse position relative to the left edge of the client, null if mouse is not over the element
clientYnumbernullMouse position relative to the top edge of the client, null if mouse is not over the element
screenXnumbernullMouse position relative to the left edge of the screen, null if mouse is not over the element
screenYnumbernullMouse position relative to the top edge of the screen, null if mouse is not over the element
elementWidthnumbernullDOMRect.width of the element, null if mouse is not over the element
elementHeightnumbernullDOMRect.height of the element, null if mouse is not over the element
isOverbooleanfalsetrue if the mouse is currently hovering over the element
isDownbooleanfalsetrue if the mouse is currently hovering over the element AND is down
isTouchbooleanfalsetrue if the the last event was triggered by a touch event

LICENSE

MIT

Keywords

react

FAQs

Package last updated on 22 Apr 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts