Polyfilled smooth scrolling behavior and helper function for Gatsby sites.
The plugin uses smoothscroll-polyfill
and calls it during the onClientEntry
Gatsby lifecycle method.
It also includes a scrollTo
helper function as its main export that you can use as onClick
event handlers to scroll to the desired element using { behavior: 'smooth' }
.
# npm
npm install gatsby-plugin-smoothscroll
# yarn
yarn add gatsby-plugin-smoothscroll
When you want a polyfilled smooth scroll behavior without having to manually install and call the polyfill.
Just add the plugin to the plugins array in your gatsby-config.js
:
plugins: [`gatsby-plugin-smoothscroll`];
If you want to use the helper function, import it:
// this could be in your `pages/index.js` file
import scrollTo from 'gatsby-plugin-smoothscroll';
Then use it as an onClick
event handler:
<button onClick={() => scrollTo('#some-id')}>My link</button>
Be aware that scrollTo
uses document.querySelector()
under the hood, so make sure to respect its syntax.