This lightweight plugin enhances user experience by enabling smooth scrolling for anchor links without the need for jQuery or other dependencies.
This plugin takes a no-frills approach to smooth scrolling, providing a fast, performant, and accessible user experience.
Simply enable the plugin, and any anchor links (i.e. links that point to other content on the same page) will provide a smooth scrolling experience rather than abruptly jumping to the destination content.
The plugin relies on the latest smooth scrolling techniques using CSS. A very fast and lightweight JavaScript polyfill (<1KB) is included to equally support older browsers, including Internet Explorer. So you can rest assured this plugin covers your userbase.
Smooth scrolling is a basic feature to enhance user experience, so it shouldn't come at a performance cost that at the same time harms user experience elsewhere.
Several other smooth scrolling solutions unfortunately rely on outdated techniques such as jQuery, which can hurt your site's performance, and is really not necessary to provide the feature. Even browsers as old as 10 years don't need jQuery to achieve smooth scrolling. In fact, as of today you can achieve the behavior with only CSS, not even requiring any JavaScript.
Another potential reason to use this plugin over other smooth scrolling solutions is accessibility: This plugin respects the user preferences around reduced motion, which can avoid discomfort for those with vestibular motion disorders.
You may already use a smooth scrolling plugin, but it is worth double checking that it doesn't use one of those outdated, inefficient, and inaccessible approaches that may slow down your site or affect user interactions negatively.
This plugin simply enables smooth scrolling with the scroll-behavior
CSS property. This property has been supported by all modern browsers for a few years now.
To support older browsers as well, a lightweight JavaScript polyfill is included, which is only loaded for browsers that lack support for the CSS property and doesn't require any dependencies. The polyfill uses latest JavaScript user experience best practices such as requestAnimationFrame
to provide a smooth scrolling experience without potentially blocking other user interactions.
For relevant browser support, see:
- CSS Scroll-behavior
- CSS property: scroll-padding-top
- prefers-reduced-motion media query
- requestAnimationFrame
- High Resolution Time API
- NodeList API
- Window API: scrollTo
You can download the latest version from the WordPress plugin repository.
Please see the plugin repository installation instructions for detailed information on installation and the plugin repository FAQ for additional details on usage and customization.
Alternatively, if you use Composer to manage your WordPress site, you can also install the plugin from Packagist:
composer require felixarntz/fast-smooth-scroll:^1.0
If you have ideas to improve the plugin or to solve a bug, feel free to raise an issue or submit a pull request right here on GitHub. Please refer to the contributing guidelines to learn more and get started.
You can also contribute to the plugin by translating it. Simply visit translate.wordpress.org to get started.