Scroll options polyfill:
- Add
ScrollToOptions
polyfill forElement.protype.{scroll|scrollTo|scrollBy}
,window.{scroll|scrollTo|scrollBy}
- Add
ScrollIntoViewOptions
polyfill forElement.prototype.scrollIntoView
- Smooth spring-based scrolling
npm install scroll-polyfill
import 'scroll-polyfill/auto'
// OR:
import scrollPolyfill from 'scroll-polyfill'
scrollPolyfill()
// or you can force the polyfill (skiping feature detection)
scrollPolyfill({force: true})
// use ScrollToOptions
window.scroll({behavior: 'smooth', left: 100, top: 100})
scroller.scrollBy({behavior: 'smooth', top: 100})
// use ScrollIntoViewOptions
scrollerChild.scrollIntoView({
behavior: 'smooth',
block: 'nearest',
inline: 'start',
})
document.body.scrollIntoView(false)
These methods have smooth spring-based scrolling and are recommended even if polyfill is not installed:
import {scrollTo, scrollBy, scrollIntoView} from 'scroll-polyfill'
scrollTo(window, {behavior: 'smooth', top: 100})
scrollBy(document.scrollingElement, {behavior: 'smooth', top: 100})
scrollIntoView(scrollerChild, {
behavior: 'smooth',
block: 'nearest',
inline: 'start',
})