Appearance
useMouseInElement
Reactive mouse position related to an element
Demo
Usage
tsx
import { useMouseInElement } from '@reause/core'
import { useRef } from 'react'
const target = useRef<HTMLDivElement>(null)
const { x, y, elementX, elementY, isOutside } = useMouseInElement(target)tsx
<div ref={target}>
<h1>Hello world</h1>
</div>Type Declarations
Toggle
ts
export interface MouseInElementOptions extends UseMouseOptions {
handleOutside?: boolean;
windowScroll?: boolean;
windowResize?: boolean;
}
export interface UseMouseInElementReturn {
x: number;
y: number;
sourceType: UseMouseSourceType;
elementX: number;
elementY: number;
elementPositionX: number;
elementPositionY: number;
elementHeight: number;
elementWidth: number;
isOutside: boolean;
stop: () => void;
}
export interface UseMouseOptions extends ConfigurableWindow {
type?: UseMouseCoordType | UseMouseEventExtractor;
target?: RefObject<Window | EventTarget | null | undefined>;
touch?: boolean;
scroll?: boolean;
resetOnTouchEnds?: boolean;
initialValue?: Position;
eventFilter?: EventFilter;
}
export type UseMouseSourceType = 'mouse' | 'touch' | null
export function useMouseInElement(target?: RefObject<HTMLElement | null | undefined>, options?: MouseInElementOptions): UseMouseInElementReturn
export function useMouse(options?: UseMouseOptions): UseMouseReturn