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