30 open-source projects similar to metafizzy/infinite-scroll, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Infinite Scroll alternative.
React Virtuoso is a React component library for rendering large datasets efficiently through virtualized lists, grids, tables, and chat interfaces. It automatically measures variable-height items at runtime, computes accurate scroll offsets without requiring fixed sizes, and renders only the items within the visible viewport plus a configurable buffer zone. The library manages scroll position through a state machine that tracks direction, position, and anchor items to handle auto-scroll, sticky headers, and bidirectional loading. The library distinguishes itself with specialized components fo
Infinite-ajax-scroll is a JavaScript library that automatically appends subsequent pages of content as users scroll down a webpage, turning standard pagination into infinite scrolling. It transforms traditional multi-page website pagination into continuous loading flows by fetching and inserting next-page items directly into active container elements. The library includes a pagination parser that extracts next-page anchor links and container structures directly from existing static markup without requiring backend changes. It monitors scroll positions relative to document boundaries to automa
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
SVPullToRefresh is a library for adding pull-to-refresh and infinite scrolling behaviors to UIKit scroll views on the iOS platform. It provides specialized user interface components that enable manual content refreshing and pagination within scrollable views. The library implements mechanisms to trigger data loading actions when a user pulls a scroll view from the top or reaches the bottom of a scrollable area. These triggers allow for syncing the latest information or appending more content to create continuous feeds.
XRecyclerView is an Android list component and extension library that adds pull-to-refresh and infinite scrolling behaviors to a standard RecyclerView. It serves as a scrollable mobile UI element designed to manage data-driven lists with support for dynamic headers and footers. The library provides a gesture-based interface for triggering content reloading via a pull-to-refresh widget and implements a mechanism for triggering data fetch callbacks when a user reaches the bottom of a list to enable infinite scrolling. It further supports dynamic list header management and the implementation of
This project is a jQuery plugin designed to replace traditional page-based navigation with continuous, dynamic content loading. It enables web interfaces to automatically fetch and append additional data to the document as a user scrolls toward the bottom of the viewport. The library distinguishes itself through granular control over the scroll-based trigger logic, allowing developers to define specific sensitivity thresholds, execution delays, and stopping conditions for content requests. It also provides built-in support for managing the visual state of the interface, including the display
SwipeRecyclerView is an Android library that extends the standard RecyclerView with swipeable action menus, drag-and-drop item reordering, and swipe-to-delete gesture detection. It provides a complete set of interactive list behaviors that let users reveal contextual buttons by swiping list items left or right, rearrange items by long-pressing and dragging them to new positions, and remove items with a horizontal swipe gesture that automatically updates the underlying data model. The library distinguishes itself by combining multiple interaction patterns into a single, cohesive component. It
Shadcn-ui-expansions is a React and Tailwind CSS component library that provides a collection of pre-built user interface elements and utilities designed to be copied directly into web applications. The project extends the shadcn-ui ecosystem with additional interactive widgets and layout elements to speed up frontend development. The library includes advanced form controls such as date and time pickers, searchable multi-item tag selectors, dual-range numeric sliders, and expanding textareas that automatically adjust height as content grows. Additional components feature animated text typing
UserScripts is a collection of JavaScript browser userscripts designed to modify website behavior and add custom functionality to web browsers. It serves as a multi-purpose toolset for web page content automation, web interface enhancement, and specialized web scraping and downloading. The project distinguishes itself through a wide range of specialized utilities, including a browser-based text transformer for character encoding and terminology mapping, and tools for bypassing content censorship. It provides advanced web scraping capabilities such as deciphering obfuscated download links, agg
Swup is a page transition library and AJAX page loader designed to create seamless, animated transitions between pages on server-rendered websites. It functions as a DOM content orchestrator and browser history manager, intercepting navigation to replace page content dynamically and simulate a single-page application experience. The project differentiates itself through a hook-based lifecycle system and a plugin architecture that allows for the injection of custom logic and animation effects. It supports advanced visual methods including DOM content morphing, parallel-DOM rendering for overla
Vue seamless scroll is a frontend animation library and Vue.js component designed to create continuous, infinite scrolling effects for lists and containers. It animates content in an endless loop without visual interruption or stuttering, supporting both horizontal and vertical scrolling directions. The library manages scrolling behavior through configuration options that adapt to various design layouts and speed requirements. It supports step-based content scrolling for controlled progression alongside continuous motion, letting developers configure scroll paths and operational parameters d
DiscreteScrollView is a UI component and animation library for React Native designed to create centered scroll views and infinite scroll lists. It provides a mechanism to keep the active selection centered within the viewport while maintaining the visibility of adjacent items. The library enables the implementation of infinite carousels by looping through data sets without boundaries. It allows for the application of visual transformations to items based on their real-time scroll position relative to the center of the view. The toolset includes capabilities for monitoring selection states an
Ladda is an animated button library that provides loading button components to signal processing states during web interactions. It serves as a form submission indicator that replaces button text with a loading spinner during asynchronous operations to provide user feedback and prevent multiple clicks. The library focuses on asynchronous UI feedback and frontend state visualization. It links the visual appearance of buttons to the loading state of API calls and manages the user experience during form submissions. Capabilities include the creation of buttons with integrated animation styles a
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
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
Legend List is a high-performance list rendering library designed to display massive collections of data with varying item heights. It utilizes windowed virtualization and a measured-height cache to render only the visible portion of a list, preventing lag and maintaining a smooth frame rate. The library specializes in bidirectional infinite scrolling and stable scroll anchoring, which prevents visual jumps when content is prepended to the top of a list. It includes specific alignment capabilities to keep content pinned to the bottom, supporting the layout requirements of chat interfaces. To
This project is a React data table component integrated with shadcn/ui. It provides a set of tabular data grids that support sorting, filtering, and pagination. The implementation includes a virtualizing data grid and an infinite scroll table, which allow for the rendering of large datasets by loading records incrementally or displaying only the items visible in the viewport. It also functions as a real-time collaborative table, enabling multiple users to manage and edit shared datasets simultaneously. The component covers interactive data management and complex data visualization. This incl
PageMenu is an iOS paging navigation controller and composite view controller manager. It organizes multiple independent view controllers within a scroll view, enabling users to swipe between full-page content views. The system features a customizable segmented control navigation bar that maps selectable segments to specific content views. This interface supports programmatic navigation to page indices and monitors page transitions via a delegate pattern. The controller manages horizontal page scrolling and view controller organization. It includes capabilities for styling the menu interface
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
This library provides a directive-based solution for implementing infinite loading patterns within Angular applications. It monitors scroll positions to trigger data fetches when users reach defined distance thresholds, facilitating the continuous loading of content as users navigate through an interface. The implementation decouples scroll tracking from specific elements, allowing it to function with both window-level scrolling and individual overflow-hidden containers. It integrates native browser scroll events into reactive streams and applies throttling logic to manage event frequency, en
connected-react-router is a synchronization tool that binds React Router state and browser history to a Redux store. It maps routing information and URL parameters into a global state tree, enabling the application to manage navigation through a unidirectional data flow. The library allows navigation to be triggered by dispatching actions rather than calling imperative history methods. This middleware-driven approach enables URL updates to be initiated from business logic or asynchronous processes. The system synchronizes the current location, hash, and search parameters into the global stat
AsyncDisplayKit is an asynchronous UI framework and performance library for iOS. It provides a collection of performant alternatives to standard views, allowing developers to build responsive interfaces by offloading layout and rendering tasks to background threads. The framework is centered around a declarative layout engine based on a flexbox model, which calculates element positions and sizes asynchronously. It utilizes a node-based abstraction to wrap native views, enabling the instantiation and configuration of UI hierarchies on background threads to prevent main thread blocking. The sy
libredirect is a browser extension redirector and privacy frontend router. It functions as a web request redirector that automatically sends requests to privacy-friendly alternative frontends to prevent tracking. The tool routes web traffic from popular websites to anonymous mirror sites and privacy-preserving versions of the same content. This mechanism is used for online tracking prevention by bypassing official site domains in favor of anonymity-preserving gateways to minimize data collection. The project utilizes client-side request interception and declarative network request filtering
smoothState.js is an AJAX navigation manager and jQuery page transition library designed to create seamless transitions between pages by loading remote content asynchronously. It functions as a browser history state manager that attaches custom serializable data to history entries and handles URL redirects without requiring full browser refreshes. The library includes a client-side page cache that stores previously visited pages in memory for instant reloading. It further reduces perceived load times through a content prefetching system that initiates network requests when a user hovers over
Instantclick is a client-side navigation enhancer and JavaScript page preloader. It intercepts HTTP requests to update page titles and content via asynchronous requests, avoiding full browser refreshes to eliminate white flashes during navigation. The project reduces perceived frontend latency by fetching linked content in the background when a user hovers over a hyperlink. This intent-based preloading ensures content is ready by the time a user clicks. The tool manages the browsing experience through client-side history manipulation and DOM-based content injection. It also includes a custom
This project is a frontend component designed to manage dynamic content loading and scroll-based interactions within web applications. It provides a reusable interface for handling data injection as users navigate through scrollable areas, ensuring that content updates occur automatically based on scroll position or manual user triggers. The component distinguishes itself by supporting both standard downward infinite scrolling and inverse scrolling, which allows for the natural expansion of content history in chat-like interfaces. It offers developers full control over the visual presentation
react-native-swiper is a cross-platform mobile carousel component that provides a swipeable interface for cycling through content panels. It supports both horizontal and vertical transitions and includes a visual pagination system using customizable indicators like dots or numbers to track the user's position. The component features a lazy-loading mechanism that defers the rendering of off-screen content to reduce memory usage and improve initial load times. It supports infinite looping, automated slide transitions via a timer, and programmatic navigation control to move the slider to specifi
ui-grid is an enterprise data grid component for Angular applications designed to display tabular data. It functions as an interactive data table that supports virtualization to maintain performance when rendering large datasets. The grid provides specialized capabilities for professional data management, including row grouping, column pinning, and state persistence. It allows for the organization of complex data hierarchies and the transformation of flat records into grouped or tree structures. The component covers a broad range of data management features, including in-place cell editing,
This is a streamlined Ruby on Rails framework designed for building lightweight backend services and JSON endpoints. It utilizes a model-view-controller architecture to separate data models and business logic from API responses, specifically omitting browser-centric views to reduce system overhead. The framework provides a system for rapidly generating models, controllers, and routes through JSON API scaffolding. It maps HTTP verbs to controllers to ensure consistent resource routing and data modeling for RESTful API backends. The project includes capabilities for HTTP request management, su
FastAdapter is a framework for building complex Android lists by mapping data models to view templates. It functions as a RecyclerView adapter framework and composite list controller, aggregating multiple independent data sources and view types into a single unified list. The library includes a specialized engine for flattening hierarchical data into expandable and collapsible rows. It provides a set of tools for managing user interactions, including clicks, long-presses, and item selection across diverse content types. The project covers broad list management capabilities, such as layout co