# iamdustan/smoothscroll

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/iamdustan-smoothscroll).**

3,826 stars · 328 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/iamdustan/smoothscroll
- Homepage: http://iamdustan.com/smoothscroll/
- awesome-repositories: https://awesome-repositories.com/repository/iamdustan-smoothscroll.md

## Description

smoothscroll is a browser compatibility library and JavaScript polyfill that provides uniform smooth scrolling behavior across different web browsers. It functions as a frontend animation utility that intercepts standard scroll commands and replaces them with custom animation logic to ensure consistent navigation transitions.

The library includes a runtime feature detection tool that identifies native browser support for scroll properties, preventing redundant execution in modern environments. It synchronizes page position updates with the browser display refresh rate to prevent visual stuttering and jitter.

The tool covers a range of capabilities including the implementation of scrolling polyfills for older browsers and the optimization of frontend performance to maintain visual consistency during web navigation.

## Tags

### User Interface & Experience

- [Smooth Scrolling](https://awesome-repositories.com/f/user-interface-experience/scroll-animations/smooth-scrolling.md) — Provides a JavaScript polyfill that implements smooth scrolling for browsers lacking native CSS support.
- [Refresh Rate Synchronization](https://awesome-repositories.com/f/user-interface-experience/animation-and-motion-systems/animation-lifecycle-hooks/animation-frame-monitors/refresh-rate-synchronization.md) — Synchronizes scroll position updates with the browser display refresh rate to eliminate visual jitter.
- [Custom Animation Logic](https://awesome-repositories.com/f/user-interface-experience/custom-animation-logic.md) — Implements custom animation logic to replace abrupt jumps with smooth interpolated transitions during scrolling.
- [Native Scroll Interception](https://awesome-repositories.com/f/user-interface-experience/scroll-interaction-handlers/scroll-state-controllers/scroll-behavior-control/native-scroll-interception.md) — Intercepts native scroll commands to redirect them through a custom animation pipeline for consistent behavior.
- [Scrolling Performance Optimizations](https://awesome-repositories.com/f/user-interface-experience/scrolling-performance-optimizations.md) — Optimizes scrolling performance by aligning animations with display refresh rates to prevent stuttering.

### Programming Languages & Runtimes

- [Compatibility Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/compatibility-libraries.md) — Acts as a compatibility library that ensures uniform navigation transitions across different web browsers.

### Web Development

- [Cross-Browser Scroll Normalization](https://awesome-repositories.com/f/web-development/cross-browser-scroll-normalization.md) — Normalizes scrolling behavior and transitions across different browser engines for a consistent user experience.
- [Feature Detection Polyfills](https://awesome-repositories.com/f/web-development/feature-detection-polyfills.md) — Detects native CSS scroll support at runtime to apply polyfills only where necessary.
