Smooth Scroll
Glide to page sections smoothly and keep keyboard focus in step.
Links to a spot on the page glide there instead of jumping, land below sticky headers and move keyboard focus with them, with optional smooth mouse-wheel scrolling. Trackpads, touch and reduced-motion visitors are never changed.
Extension
Requirements
- WordPress 6.5 or newer
- PHP 7.4 or newer
- Licence: Pro ($2 / year) — add it to the cart in Moduly
Configure it
- Switch it on in Moduly → Installed Widgets.
- Click Manage on Smooth Scroll to open its settings, change them and click Save.
Settings
Links to a spot on the page
| Setting | What you can set |
|---|---|
| Glide to #anchor links | With this and the mouse wheel option both off, nothing is loaded on the front end. |
| Scroll time | 200–2000 ms · Long jumps are capped at this; short ones take less. |
| Easing | Smooth (ease in and out), Quick start, soft landing or Even speed |
| Stop below a sticky header | Measures any header fixed to the top of the screen, plus the admin bar. |
| Extra space above the target | 0–300 px |
| Also glide to the #anchor in a link from another page | On / off |
Mouse wheel
| Setting | What you can set |
|---|---|
| Smooth mouse-wheel scrolling | Only for notched mouse wheels on desktop. Inner scroll areas, maps and zooming (Ctrl + wheel) are left alone. |
| Smoothness | 4–24 · Higher glides longer. |
Opt one link out:
<a href="#faq" class="no-smooth">FAQ</a>
Tips
- Visitors who ask their device for reduced motion get a calmer, still version automatically.
Troubleshooting
- Sticky headers that hide when scrolling down (like this site's) are hidden on arrival after a downward glide, so only the admin bar is accounted for. That is correct, but the header reappears over the target if the visitor then scrolls up a little.
- Page builders with their own anchor scrolling (Elementor's "smooth scroll" setting, for example) handle their links first. Those links are left alone because they are already handled.
- A change not showing on the live site is almost always a page cache — clear your caching plugin or host cache.
Related
- Works well with: Back to Top, Custom 404 Page, Sticky Header.