30 open-source projects similar to cferdinandi/smooth-scroll, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Smooth Scroll alternative.
elevator.js is a lightweight JavaScript library that adds a playful, elevator-themed scroll-to-top button to a webpage. When clicked, it smoothly animates the page back to the top while playing a looping elevator music track in the background, masking the transition and adding a whimsical touch to the user experience. The library goes beyond a simple scroll-to-top button by offering configurable scroll duration, the ability to scroll to any specified DOM element with optional vertical padding, and callback hooks that fire user-defined functions at the start and end of the animation. This allo
react-scroll is a library for managing smooth and immediate scrolling behavior between page elements in React applications. It functions as a DOM scroll controller, providing a declarative API and a set of components to animate the viewport to specific target elements. The library enables custom scrolling by allowing the viewport to move to target elements through either instant jumps or animated transitions. It provides a system for integrating this scrolling logic into custom components using mixins to define specific movement triggers and targets. The project covers viewport navigation an
Better-scroll is a JavaScript scroll library and touch interaction engine designed to create high-performance scrollable areas in web browsers. It functions as a modular UI component framework that provides the foundation for building complex scrollable elements. The library is distinguished by a plugin-based architecture that allows the injection of custom methods and event hooks. This system enables the creation of specialized interface components such as carousel sliders, scrollable picker inputs, and draggable element systems. The project covers a wide range of mobile web interaction pat
GSAP is a comprehensive JavaScript animation library designed for orchestrating complex motion sequences and interactive user interfaces. It provides a robust property-interpolation engine that calculates intermediate values for CSS styles, attributes, and numeric properties, enabling smooth visual transitions across web elements. The framework is built on a core architecture that manages animation lifecycles, timeline-based sequence orchestration, and virtual property interception to ensure precise control over motion. The library distinguishes itself through a modular, plugin-based extensib
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 stutte
This project is a terminal graphics library and command-line visual effects tool designed to create dynamic motion graphics using ANSI escape sequences. It provides a framework for implementing an ANSI text animation engine and a motion processor that handles the movement of characters along paths within a shell environment. The tool is distinguished by its wide array of pre-defined visual effects, ranging from simulated environmental phenomena like thunderstorms and fire to high-tech reveals such as laser etching and decryption animations. It also supports extensibility through a plugin-base
iscroll is a JavaScript smooth scrolling library and web interaction framework. It provides a 2D web panning controller and a CSS transform zoom engine to manage inertial scrolling, panning, and zooming for web elements across different devices. The project enables the implementation of custom scrollbar interfaces and navigation maps that track the current viewport position. It supports the creation of interactive web carousels with element snapping, web parallax effects, and content scaling via pinch-to-zoom or mouse-wheel inputs. The library covers a broad range of interaction capabilities
fullPage.js is a JavaScript full-screen scrolling library and layout engine used to create websites composed of vertical sections and horizontal slides that snap to the viewport. It provides a system for organizing web content into full-screen pages with automatic snapping behavior. The library distinguishes itself through a WebGL transition framework and visual storytelling tools, enabling cinematic effects such as 3D rotations, parallax backgrounds, fading, and water distortion during navigation. It also features a responsive adaptation system that can switch from automatic snapping to stan
React custom scrollbars is a user interface component built for React applications that replaces native browser scrollbars with custom-styled tracks and thumbs. It maintains consistent visual appearance across different platforms and browsers while generating matching markup on both server and client environments to support server-side rendering without layout shift. The library provides comprehensive styling options by overriding default track, thumb, and view elements with custom components, CSS classes, or inline styles. It handles layout adjustments by resizing container dimensions dynami
FTXUI is a C++ terminal user interface library and cross-platform console framework used for building interactive command line applications. It functions as a declarative terminal layout engine and a component-based UI toolkit that enables the creation of responsive interfaces. The library is distinguished by its terminal graphics and animation capabilities, allowing for the rendering of custom shapes, data plots, and smooth visual transitions using easing functions. It provides a comprehensive set of interactive widgets and a layout system utilizing flexbox and grid containers that adapt to
Smooth-scrollbar is a customizable JavaScript library that replaces native browser scrollbars and scrolling behavior on target DOM elements with inertial momentum physics. It provides consistent cross-browser scrolling interfaces, hardware-accelerated visual translations, and dynamic thumb positioning. The library supports nested scroll container management, allowing outer containers to continue scrolling automatically when inner scrollable areas reach their boundary edges. It features a modular plugin architecture that enables third-party extensions to hook into core scroll events, track upd
This project is a declarative motion framework and JavaScript animation engine designed to transition CSS properties, SVG attributes, and DOM elements. It provides a comprehensive set of tools for creating complex, multi-part motion sequences by synchronizing animations, timers, and callbacks into a single, unified timeline. The library distinguishes itself through a robust timeline-based sequence orchestrator that allows for precise timing, label-based control, and hierarchical nesting of animations. It also features a physics-driven interaction library that enables draggable elements with c
BasicScroll is a standalone scroll-driven animation library that updates CSS custom properties, element styles, and CSS properties dynamically based on absolute or relative viewport scroll positions. It functions as an animation engine designed to build custom parallax scrolling experiences and fluid visual effects on both mobile and desktop viewports. The library supports custom scroll range definitions anchored directly to specific document elements, alongside callback executions that trigger user-defined functions with live progress data and state percentages as the viewport enters or leav
lightgallery.js is a modular JavaScript library used to create responsive image galleries, multimedia viewers, and media lightbox components. It provides a dependency-free interface for rendering HTML5 video, external iframes, and responsive images within a full-screen overlay. The project is distinguished by a module-based plugin architecture that allows developers to extend the core engine with custom behaviors. It features hardware-accelerated transitions, a system for synchronizing the current slide index with URL hash fragments for direct linking, and the ability to initialize galleries
tween.js is a JavaScript animation engine and numeric interpolation library. It is designed to calculate intermediate values between a start and end state over time, using easing functions to create smooth transitions for numeric values and object properties. The project functions as both an animation sequence manager and an easing library, allowing for the coordination of concurrent animation groups and the chaining of multiple transitions. It provides tools for managing the rate of change through acceleration and deceleration functions. The library covers a broad range of motion capabiliti
Easings.net is a web animation timing tool used for designing, comparing, and exporting cubic-bezier coordinates and timing values. It provides a visual interface for creating easing functions to ensure consistent motion across browsers. The project functions as both an animation motion visualizer and a code generator. It allows for the identification of natural motion profiles through an interactive interface and exports the resulting easing functions as CSS or TypeScript code. The tool covers motion design prototyping and frontend UI animation, focusing on the acceleration and deceleration
This project is a technical guide and implementation library for advanced visual effects and hardware-accelerated animations using the Core Animation framework on iOS. It provides a comprehensive reference for creating high-performance motion graphics, custom graphic rendering, and the construction of 3D engines using perspective transforms and Z-axis manipulation. The collection distinguishes itself through a deep focus on GPU rendering optimization and graphics performance. It covers advanced strategies to maintain high frame rates, such as reducing offscreen rendering via shadow path optim
React tiny virtual list is a zero-dependency component library that optimizes performance for extensive vertical and horizontal collections by rendering only the items currently visible in the viewport. It handles large datasets efficiently while supporting variable item dimensions and dynamic content updates at runtime. The component supports both horizontal and vertical scroll directions, absolute positioning layouts, and dynamic offset measurements computed via fixed numbers, size arrays, or callback functions. It also provides imperative methods to programmatically scroll or jump to speci
Skrollr is a dependency-free scroll-driven animation engine and cross-platform frontend library. It functions as a toolkit for linking CSS properties and HTML attributes to scroll positions to create synchronized animations, specifically providing utilities for the interpolation of SVG attributes. The library enables the creation of parallax scrolling and interactive web storytelling by mapping scroll offsets to specific style values. It allows for the development of non-linear movement and dynamic SVG effects through the use of custom HTML attributes that define keyframes. The system covers
This project is a cross-platform mobile carousel component for creating swipeable image and content sliders. It functions as a virtualized list component that maintains performance by removing off-screen elements and utilizes a native-driver animation library to map scroll offsets to style properties on the native thread for lag-free transitions. The library provides a parallax image gallery capable of shifting images relative to scroll progress to create a sense of depth. It also features a layout system that supports right-to-left orientations for languages such as Arabic and Hebrew. Capab
react-virtualized is a library of components for rendering massive lists and tables by drawing only the elements visible in the viewport. It provides specialized layout managers including a windowed grid component and a dynamic height list manager. The project includes a masonry layout engine for packing items of varying heights and widths, as well as an infinite scroll interface for incrementally fetching and appending data. The library covers a broad range of virtualization capabilities, including frozen grid elements, reverse list rendering, and synchronized viewport scrolling. It also su
snabbt.js is a JavaScript motion framework and CSS transform animation library used to create high-performance animations for DOM elements. It functions as a 3D CSS animation engine and a matrix-based geometry toolkit for calculating precise translations, rotations, scales, and skews. The framework provides a user-driven animation controller that allows animation progress to be tied to manual user input rather than standard time-based playback. It enables the simulation of depth and perspective by animating HTML elements into three-dimensional shapes. The system covers motion orchestration t
pulltorefresh.js is a JavaScript library and touch-gesture UI component used to add pull-to-refresh functionality to scrollable elements in web applications. It acts as a web interaction plugin that detects downward scrolling gestures to trigger content refresh actions. The library focuses on mobile web application user experiences, allowing developers to implement touch-based navigation and dynamic content refreshing that mimics native app behaviors on smartphones and tablets. The implementation includes configurable trigger distances and sensitivity thresholds. It utilizes touch-event trac
This project is a plugin for Tailwind CSS that provides a declarative utility library for managing web interface animations. It functions as a motion framework, enabling developers to apply fluid entrance and exit effects to elements directly through utility classes. The framework distinguishes itself by offering a comprehensive suite of motion controls that integrate with the Tailwind ecosystem. It supports granular configuration of animation properties, including timing, duration, delay, and iteration, while allowing for complex transformations like rotation, scaling, and opacity adjustment
CountUp.js is a lightweight JavaScript library that animates a numerical value from zero to a target number over a configurable duration with smooth easing. It supports both count-up and count-down transitions, making it a focused tool for displaying animated numerical changes on web pages. The library distinguishes itself through support for bidirectional number animation, custom easing functions, and locale-aware number formatting with configurable separators, decimal points, and digit groupings. It also offers plugin-based rendering, allowing developers to replace the default display logic
Velocity is a JavaScript animation library used to create high-performance CSS and SVG animations. It functions as a CSS property interpolator and a spring physics engine, enabling the creation of smooth visual transitions and organic movement for web elements. The project provides a programmatic interface for modifying vector attributes and 3D transformations through its SVG animation framework. It further distinguishes itself as an animation sequence orchestrator, allowing for the chaining of movements and the staggering of start times across multiple elements using promises. The library c
Fixed-nav is a client-side JavaScript library for building responsive, touch-friendly navigation menus on single-page websites. It pins navigation bars to the screen viewport so control interfaces remain persistently accessible as users scroll through long content. The library automatically monitors scroll positions against document boundaries to highlight active section indicators in real time. When navigation links are selected, it animates viewport transitions to target sections using hardware-accelerated timing functions instead of abrupt jumps. Additional capabilities include dimming ba
maptalks.js is a JavaScript map rendering library and web map interaction framework used to render interactive 2D and 3D geographic data on a web canvas. It functions as a 3D geospatial engine supporting 3DTiles and GLTF formats, a GeoJSON visualization tool, and a spatial analysis library. The project distinguishes itself through high-performance rendering and dynamic geospatial animation, including the ability to simulate traffic flow and execute smooth visual transitions for map elements. It provides comprehensive tools for interactive geometry editing, allowing users to draw and modify ve
Portfolio-responsive-complete is a responsive web portfolio template built with core web languages that adapts automatically to any screen size. It functions as a frontend developer portfolio template, providing a personal showcase site designed with a mobile-first approach. The project incorporates mobile-first fluid layouts that adapt screen structures dynamically across devices, alongside declarative style encapsulation that organizes visual rules into structured stylesheets. It features event-driven DOM manipulation to update interface states dynamically in response to user interactions.
This repository is a comprehensive collection of functional 2D and 3D demo projects and implementation samples for the Godot Game Engine. It serves as an interactive tutorial and reference library, providing a working codebase to demonstrate how to apply engine features in real-world scenarios. The collection focuses on practical implementation guides, covering a wide array of technical capabilities from basic engine fundamentals to advanced rendering and scripting techniques. It allows users to study the application of node-based composition, asset pipelines, and game logic through direct ex