use-scroll-into-view
Scroll given node into view
Import
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
Hook is configured with settings object:
onScrollFinish– function that will be called after scroll animationeasing– custom math easing functionduration- duration of scroll animation in millisecondsaxis- axis of scrollcancelable- indicator if animation may be interrupted by user scrollingoffset- additional distance between nearest edge and elementisList- indicator that prevents content jumping in scrolling lists with multiple targets eg. Select, Carousel
Hook returns an object with:
scrollIntoView– function that starts scroll animationcancel– function that stops scroll animationtargetRef- ref of target HTML nodescrollableRef- 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
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
Examples
Parent node
Scroll me into view
Scroll X axis
Scroll me into view