Smoothscroll

Smooth scrolling on pages using javascript

These are versions of this script where the code was updated. Show all versions.

  • v12 18.01.2024.
  • v11 18.01.2024.
  • v10.1 28.08.2021.

    UPDATE (28.8.2021):

    Stopped using scrollBy for now because it messes up some pages scroll badly.

  • v10.0 16.05.2021.
  • v9.6 26.05.2019. Fix for pages with "scroll-behavior: smooth;".
  • v9.5 19.05.2019. Added support for different e.deltaMode (pixel, line, page -scrolling handled correctly now).
  • v9.3 19.05.2019. Switched to more standardized "wheel" event: https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event
  • v9.2 19.05.2019. Hotfix for event binding (again for firefox).
  • v9.2 19.05.2019. Another attempt to fixing firefox support.
  • v9.1 19.05.2019. Potential fix for Firefox where scroll was missing e.path property.
  • v9.0 18.05.2019. Changed from timer based animations, to requested animation frames (much much smoother and better overall, with automatic fps scaling)
  • v8.1 19.09.2018. Added additional check for "is body scrollable"?
  • v8 14.09.2018. Possible fix for wrong body/html scrollable detection.
  • v7 11.09.2018. Turned off debug.
  • v7 06.09.2018. Further simplified scrollbar and scroll detection (hopefully final)
  • v6 06.09.2018. Fixed some scroll problems with html/body elements, simplified scroll limit detection.
  • v5.5 17.03.2018.
  • v5.4 10.03.2018. Small fixes.
  • v5.2 08.03.2018. Added possibility to require as node.js script and exposed window.Smoothscroll object.
  • v5.1 08.03.2018. Renamed variables and did some cleanup.
  • v5.0 08.03.2018. Completely rewrote from scratch. Should be much more reliable and responsive now. Settings removed for now though. (edit settings inside script if you need)
  • v3.1 05.03.2018.
  • v3.0 08.12.2017. Slightly improved scrolling animation and fps handling.
  • v2.9 17.08.2017. Minor tweaks and code cleanup.
  • v2.8.1 05.08.2017. Quickfix.
  • v2.8 05.08.2017. Reworked animation.
  • v2.7 27.07.2017. Experimental update. Might be final version if no problems occur.
  • v2.6 17.12.2016. Small change to dynamicfps scaling.
  • v2.5.2 12.12.2016. Minor smoothness change to default values.
  • v2.5.1 12.12.2016. Quickfix.
  • v2.5 12.12.2016. Added new kind of dynamicfps, script will run at lower fps if there is framedelay between animations.
  • v2.4.2 23.11.2016. Quickfix.
  • v2.4.1 23.11.2016. Tweaked some default values and setting scale.
  • v2.4 23.11.2016. Updated scroll logic. !!!CHECK YOUR CONFIGS AND RESET EVERYTHING TO DEFAULTS!!!
  • v2.3 06.11.2016. Decreased possible conflicts and unwished scrolls when webpages change scroll themselves.
  • v2.2 01.11.2016.
  • v2.2 01.11.2016. Code cleanup. (Now that jQuery is gone, scroll is much better and much less cpu intensive)
  • v2.1 01.11.2016. Scroll should now be about the same as before.
  • v2.0.1 01.11.2016. Slight change to new scroll animation.
  • v2.0 01.11.2016. Removed jQuery.
  • v1.3 28.10.2016. Updated to use internal jQuery data instead of writing directly into DOM elements. (Should be a lot less cpu intensive and more smooth now)
  • v1.2 27.10.2016. Some optimizing.
  • v1.1.1 06.10.2016. Small fixes and performance improvements
  • v1.1.0 06.10.2016. Some bugfixing (hopefully)
  • v1.0.9.2 19.07.2016. removed config loading and config menu for now (some weird problems)
  • v1.0.9.1 17.07.2016. small mistake whoops
  • v1.0.9 17.07.2016. kinda experimental update, aimed to make smoother scroll by adjusting fps better
  • v1.0.8.5 04.07.2016. Small hotfix + changes to default values.
  • v1.0.8 04.07.2016. Improved fps and reduced some scroll lag.
  • v1.0.7 19.06.2016.

Show all script versions