use-scroll-into-view
Scrolls given element into view
Source
Docs
Package
Usage
use-scroll-into-view handles scroll behavior for any scrollable element. Basic usage works the same way as element.scrollIntoView().
Hook adjusts scrolling animation with respect to the reduced-motion user preference.
Hello there
API
The hook is configured with settings object:
- onScrollFinish– function that will be called after scroll animation
- easing– custom math easing function
- duration- duration of scroll animation in milliseconds
- axis- axis of scroll
- cancelable- indicator if animation may be interrupted by user scrolling
- offset- additional distance between the nearest edge and element
- isList- indicator that prevents content jumping in scrolling lists with multiple targets, for example Select, Carousel
Hook returns an object with:
- scrollIntoView– function that starts scroll animation
- cancel– function that stops scroll animation
- targetRef- ref of target HTML node
- scrollableRef- ref of scrollable parent HTML element, if not used document element will be used
Returned scrollIntoView function accepts single optional argument alignment - optional target element alignment relatively to parent based on current axis.
Easing
The hook accept custom easing math function to control the flow of animation.
It takes t argument, which is a number between 0 and 1.
Default easing is easeInOutQuad - more info here.
You can find other popular examples on easings.net
Parent node
Scroll me into view
Scroll X axis
Scroll me into view