0.1.18 • Published 7 years ago
@render-props/mouse-position v0.1.18
MousePosition
A state container which provides a performant interface for tracking the position of the mouse as it moves around the screen - perfect for UX analytic tracking and also in-browser gaming.
Installation
yarn add @render-props/mouse-position or npm i @render-props/mouse-position
Usage
import MousePosition from '@render-props/mouse-position'
const MousePositionDiv = props => (
<MousePosition enterDelay={500} leaveDelay={200}>
{
({
mouseRef,
canMove,
pageX,
pageY,
clientX,
clientY,
screenX,
screenY,
elementX,
elementY,
isOver,
}) => (
<div ref={mouseRef}>
Is over?: {JSON.stringify(isOver)}
Element position X: {elementX}
Element position Y: {elementY}
</div>
)
}
</MousePosition>
)Props
enterDelay {number}- the amount of time to wait before declaring that an element is being hovered and we should therefore track move events
leaveDelay {number}- the amount of time to wait before declaring that an element is no longer being hovered and we should not continue monitoring move events
initialValue {bool}- the initial
isHoveringvalue to initiate the component with
- the initial
onMove {function}- a callback which fires each time the mouse move event updates the state of
the component. Accepts two arguments
(state, event).
- a callback which fires each time the mouse move event updates the state of
the component. Accepts two arguments
onLeave {function}- a callback which fires when the mouse leaves its ref'd element.
Accepts one argument argument for
(event).
- a callback which fires when the mouse leaves its ref'd element.
Accepts one argument argument for
Render Props
Ref
mouseRef- This
refmust be provided to whatever element you are trying to observe the the mouse movements of. e.g.<div ref={mouseRef}>
- This
State
pageX {integer}- mouse position relative to the left edge of the document,
nullif mouse is not over the element
- mouse position relative to the left edge of the document,
pageY {integer}- mouse position relative to the top edge of the document,
nullif mouse is not over the element
- mouse position relative to the top edge of the document,
clientX {integer}- mouse position relative to the left edge of the client,
nullif mouse is not over the element
- mouse position relative to the left edge of the client,
clientY {integer}- mouse position relative to the top edge of the client,
nullif mouse is not over the element
- mouse position relative to the top edge of the client,
screenX {integer}- mouse position relative to the left edge of the screen,
nullif mouse is not over the element
- mouse position relative to the left edge of the screen,
screenY {integer}- mouse position relative to the top edge of the screen,
nullif mouse is not over the element
- mouse position relative to the top edge of the screen,
elementX {integer}- mouse position relative to the left edge of the ref'd element,
nullif mouse is not over the element
- mouse position relative to the left edge of the ref'd element,
elementY {integer}- mouse position relative to the top edge of the ref'd element,
nullif mouse is not over the element
- mouse position relative to the top edge of the ref'd element,
elementWidth {integer}offsetWidthof the ref'd element,nullif mouse is not over the element
elementHeight {integer}offsetHeightof the ref'd element,nullif mouse is not over the element
isOver {bool}trueif the mouse is over the ref'd element