30 open-source projects similar to ustbhuangyi/better-scroll, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
mescroll is a JavaScript infinite scroll library and mobile web scroll manager designed to implement pull-to-refresh and pull-up-loading patterns. It provides a system for handling touch-based scrolling, managing pagination states, and integrating these behaviors within Vue applications. The library distinguishes itself through specialized support for chat interfaces, enabling reverse-order data loading and the ability to inject data in a reverse direction to simulate message histories. It also includes a state-persistent scroll cache to preserve vertical offsets and list data when users navi
SmartRefreshLayout is a pull-to-refresh framework and gesture interaction library for Android. It provides a scroll view wrapper that integrates interactive refresh headers and loading footers into mobile user interfaces, coordinating synchronized scrolling and touch events. The project features a pluggable architecture for custom refresh indicators and secondary refresh mechanisms. It utilizes damping-based gesture translation and overscroll rebound mechanisms to manage the tactile feel of drag resistance and physics-based animations. The library covers a broad range of interaction logic, i
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
This JavaScript smooth scrolling library is a frontend utility and viewport motion controller designed to animate transitions to anchor links. It intercepts standard link clicks to replace instant jumps with fluid movement toward target elements. The library provides configurable motion easing patterns and speed controls to manage acceleration and deceleration. It includes a mechanism to cancel active animations immediately and supports programmatic scroll triggering via direct function calls. The tool handles positioning offsets to prevent target content from being hidden behind fixed heade
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
Mobile-first-animation is a mobile web animation library and touch gesture animation toolkit designed to create fluid, gesture-driven animations and spring physics interactions. It provides a spring physics simulation engine that calculates realistic motion dynamics, responding naturally to user velocity and release points. The library features a gesture-driven animation pipeline that binds raw touch input directly to animation drivers, alongside a declarative animation interpolation system that maps continuous touch coordinate ranges to visual style properties. It applies hardware-accelerate
MJRefresh is a scroll view interaction library and a set of reusable UI components for implementing pull-to-refresh and infinite scrolling behaviors in mobile user interfaces. It provides customizable refresh indicators and controllers that manage reload callbacks and loading states within scrollable containers. The library allows for the replacement of standard loading indicators with custom images, GIF sequences, and status labels to match specific visual branding. It includes a global configuration store to handle dynamic UI localization and the translation of refresh content across an app
Embla Carousel is a lightweight JavaScript carousel library and barebones slider engine designed for creating touch-enabled, swipeable content sliders. It functions as a plugin-based framework that manages scroll physics and slide positioning without imposing specific UI styles, while providing a programmable API for custom carousel development. The system is distinguished by its modular architecture, allowing developers to extend core logic through external plugins and custom event hooks. It is compatible with server-side rendering, generating initial styles on the server to prevent layout s
happy-dom is a JavaScript-based headless browser simulation and virtual DOM engine. It implements the Document Object Model and Web APIs to execute frontend code and run tests within non-browser environments such as Node.js. The project provides a programmatic interface for creating and testing custom elements and shadow DOM structures. It supports stateful page instance management to simulate multiple concurrent browsing sessions and includes a programmable clock to synchronize asynchronous operations. The system covers a broad range of browser simulation capabilities, including DOM manipul
fluttereasyrefresh is a library for implementing pull-to-refresh and infinite scroll pagination within Flutter list components. It provides the functional components and logic required to trigger data reloads via pull-down gestures and fetch additional data chunks through pull-up triggers. The project features a decoupled indicator architecture that allows for customizable visual styles, themed animations, and flexible positioning of headers and footers. It includes a centralized controller that enables the programmatic management of refresh and loading states independently of user gestures
This project is a collection of reusable React hooks designed to wrap browser APIs, manage state persistence, and handle DOM observation. It provides a consistent interface for integrating native browser capabilities directly into the React component lifecycle. The library includes specialized toolkits for monitoring the browser environment, such as window resizing, network connectivity, and viewport visibility. It also provides mechanisms for managing execution timing through debouncing, throttling, and the control of timeouts and intervals. Additional capabilities cover state management wi
PhotoSwipe is a JavaScript image gallery library used to create responsive, touch-enabled lightboxes for mobile and desktop web browsers. It functions as a framework-agnostic UI component, allowing for the integration of image viewers across different web environments without requiring specific JavaScript libraries. The library is designed as a mobile-first gallery viewer, providing a full-screen image overlay that supports native-feeling touch gestures. This includes specific optimizations for mobile devices such as swipe navigation and pinch-to-zoom interactions. The project enables full-s
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
vue-awesome-swiper is a Vue.js component wrapper for the Swiper library, providing a declarative interface for creating touch-enabled carousels. It serves as a virtualized slider component that can render only visible slides to maintain performance when handling large datasets. The project distinguishes itself through high-performance rendering and a wide array of visual effects, including 3D transitions, parallax movements, and image zoom capabilities. It also supports the synchronization of multiple slider instances and provides accessibility features such as ARIA roles and focus-scrolling
Swiper is a modular, touch-enabled library designed for building interactive content carousels and sliders for web and mobile applications. It provides a high-performance rendering engine that manages large datasets by dynamically creating and destroying elements based on their proximity to the viewport, ensuring memory efficiency and smooth operation. The library distinguishes itself through a plugin-based architecture that allows developers to include only the specific functionality required for their project, effectively minimizing bundle sizes. It features a hardware-accelerated animation
React Grid Layout is a draggable and resizable grid system for React that organizes components into a coordinate-based layout. It functions as a responsive layout manager and a serialized grid state engine, providing the tools necessary to create user-customizable workspaces where interface elements can be moved and resized. The system distinguishes itself through breakpoint-driven layout mapping, which adjusts grid configurations based on container width. It utilizes a serialized state model to convert spatial positions and dimensions into data formats for saving and restoring user layouts,
This is a jQuery plugin that acts as a cross-browser event normalizer for mouse wheel movement. It standardizes mouse wheel event handling and scroll delta values across different web browsers to provide a predictable interface for web applications. The utility converts hardware-specific scroll increments into consistent whole-number values. This process resolves inconsistencies in how various browsers report movement, ensuring that scroll distance and input signals are unified into a single format. The project covers cross-browser scroll handling and web input standardization. It allows for
Flickity is a JavaScript library used to create responsive, touch-enabled content carousels and sliders for web pages. It provides a system for building flickable galleries that allow users to navigate through collections of elements using touch or mouse input. The library specializes in performance and movement, featuring lazy-loading for images that defers loading off-screen content until it enters the viewport. It supports infinite scrolling loops that wrap back to the first cell after the last is reached, as well as automated slide transitions for slideshow experiences. The toolset inclu
Taiga UI is an Angular UI component library and accessible design system used for building enterprise web interfaces. It provides a comprehensive collection of reusable interface elements and layout tools, functioning as a mobile-first UI kit with responsive components that adapt to different device capabilities. The library distinguishes itself through an integrated data visualization library featuring various chart types and a dedicated form management framework with built-in validation and formatting for specialized data. It also features AI-driven development workflows by integrating comp
react-slick is a React carousel component and responsive slider library. It provides a reusable user interface element for displaying a sequence of items in a horizontal scroll, supporting infinite looping, navigation dots, and adjustable transition speeds. The library enables the creation of touch-enabled image and content sliders that adapt to different screen sizes. It is used to build interactive content carousels, responsive image sliders, and rotating banners for product showcases.
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
Android-PullToRefresh is an Android view component and library designed to implement pull-to-refresh functionality and end-of-list detection for scrollable views within Android applications. It acts as a custom view that manages the animations and listener triggers necessary to update content via user interaction. The library provides mechanisms for triggering refresh actions when a user pulls from the boundaries of a scrollable view and detecting when a user reaches the bottom of a list to facilitate data pagination. It allows for the customization of the refresh indicator's visual theme and
react-basic provides a conceptual implementation of the React model, focusing on a component-based UI architecture. It employs pure functions to transform raw data into structural interface representations and uses a declarative system for managing UI state and hierarchical data distribution. The project distinguishes itself through specialized caching strategies, including tree-based result caching that stores values based on the structural position of elements. It also features a mechanism for deferred function execution to remove boilerplate from business paths and supports the isolation o
This is an Android pull-to-refresh library and custom view component designed to implement refresh interactions across any Android view. It functions as a gesture interaction tool that manages pull-down motions and touch conflicts to trigger data loading operations. The library provides tools for creating custom refresh headers and indicator visuals, utilizing a path-based animation engine to produce non-linear visual transitions. It includes mechanisms to define specific trigger thresholds through height ratios and user release events. The project covers gesture management and touch interac
Craco is a configuration layer for Create React App that modifies Webpack and Jest settings without requiring the project to eject. It functions as a build tool plugin system and configuration manager, allowing for the injection of custom settings and third-party logic into the frontend build pipeline. The project utilizes a hook-based architecture and non-destructive configuration merging to override default settings. This allows for Webpack configuration overrides and Jest configuration tuning while maintaining the original source files. The system covers a broad range of build pipeline ex
LogicFlow is an SVG-based flowchart editing framework and visual graph editor used for building customizable business process diagrams. It serves as a customizable diagramming engine for rendering business process models, entity relationship diagrams, and unified modeling language charts. The system is characterized by a plugin-based architecture that allows developers to define specialized graphical elements and register pluggable modules. A distinctive feature is its overlay system, which positions standard HTML components on top of the SVG canvas to create interactive menus and control pan
Dockercraft is a Cuberite-based system that visualizes running Docker containers as blocks inside a Minecraft world, providing an in-game interface for managing containers through block interactions. It maps each Docker container to a distinct block entity, linking container lifecycle events to block state changes for at-a-glance status monitoring. The project uses a Cuberite server plugin to translate in-game player actions into Docker API calls, enabling starting, stopping, and inspecting containers by interacting with their block representations. A real-time polling loop periodically queri
CBStoreHouseRefreshControl is a collection of UI elements and tools for creating customizable, coordinate-mapped loading animations and gesture-driven refresh indicators for iOS applications. It provides a pull-to-refresh component that triggers content updates via a pull-down gesture on scrollable views. The library distinguishes itself through configuration-driven visual styling and coordinate-based path definitions, allowing animation trajectories and shapes to be defined in external files rather than through hard-coded values. It incorporates randomized animation offsets to introduce visu
Docsify is a client-side documentation framework and no-build static site generator. It functions as a browser-based engine that converts Markdown files into HTML on the fly, allowing for the generation of documentation websites without a static build or compilation process. The system employs a plugin interface and lifecycle hooks to modify the rendering process and extend site capabilities. It supports dynamic theme injection and visual style customization through external CSS and layout configurations. The framework includes capabilities for multi-language content management, full-text se