awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
mescroll avatar

mescroll/mescroll

0
View on GitHub↗
4,459 stars·893 forks·Vue·MIT·7 viewswww.mescroll.com↗

Mescroll

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 navigate between different views.

The project covers a broad range of interaction and performance capabilities, including the suppression of native browser rubber-banding, viewport-aware image lazy loading, and programmatic scroll positioning. It further provides utilities for managing pagination states, customizing loading and empty state UI, and implementing back-to-top navigation.

Features

  • Infinite Scrolling - Implements a core infinite scrolling pattern that fetches and appends data when the user reaches the list bottom.
  • Mobile Scroll Libraries - Provides a comprehensive JavaScript library for high-performance, touch-optimized scrolling on mobile web environments.
  • Local Data Caches - Ships a local data caching mechanism to store retrieved list data and avoid redundant network requests.
  • Pagination State Managers - Implements a system to track page numbers and cache list data to maintain pagination state during navigation.
  • State-Driven Callbacks - Triggers developer-defined callback functions when scroll offsets reach predefined thresholds for refreshing or loading.
  • Scroll Trigger Calculators - Calculates the specific scroll offsets required to trigger the loading of subsequent data pages.
  • Pull-to-Refresh & Infinite Scroll - Combines pull-to-refresh and infinite scroll capabilities specifically for mobile web list pagination.
  • Pagination State Providers - Tracks current page numbers and manages pagination state to prevent duplicate record loading.
  • Pull-to-Refresh Frameworks - Provides the framework for implementing pull-to-refresh gestures that trigger data reloading callbacks.
  • Navigation Scroll Restoration - Preserves vertical scroll offsets and data in a persistent cache to restore previous views after navigation.
  • Automated Content Loading - Automates the process of fetching and inserting subsequent paginated content into the scroll view.
  • Reverse-Chronological Data Loading - Enables fetching and displaying data from the bottom upwards to simulate a chat history.
  • Reverse-Direction Content Injections - Enables the injection of history data at the top of the list to simulate a chat interface.
  • Automatic Content Pre-fetching - Automatically fetches additional data pages when the initial content is insufficient to fill the viewport.
  • Chat Message List Renderers - Provides specialized support for rendering chat message lists with reverse loading and automatic positioning.
  • Interaction Locks - Provides mechanisms to temporarily lock and ignore touch events to prevent accidental refresh or load triggers.
  • Coordinate-Based Scroll Commands - Implements programmatic scrolling to specific vertical pixel coordinates with optional smooth animation.
  • Rubber-Band Effect Suppressors - Prevents native iOS browser bounce to ensure a seamless custom pull-to-refresh user experience.
  • Programmatic Scrolling - Enables programmatic movement of the list to specific vertical coordinates with optional smooth animations.
  • Native Scroll Interception - Provides the ability to intercept and disable native browser rubber-banding effects for tighter control over the UI.
  • Scroll Restoration - Caches vertical offsets and data references to restore a user's previous scroll position after navigating back.
  • Interaction Action Locks - Allows developers to temporarily disable pull-to-refresh or pull-up-loading actions to prevent accidental triggers.
  • Vue - Offers specific Vue.js component wrappers that integrate pull-refresh and infinite loading logic into declarative components.
  • Image Lazy Loading - Defers the loading of images until they intersect with the visible area of the scroll container.
  • Mobile Web Performance Frameworks - Optimizes mobile web performance via image lazy loading and persistent scroll state caching.

Star history

Star history chart for mescroll/mescrollStar history chart for mescroll/mescroll

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does mescroll/mescroll do?

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.

What are the main features of mescroll/mescroll?

The main features of mescroll/mescroll are: Infinite Scrolling, Mobile Scroll Libraries, Local Data Caches, Pagination State Managers, State-Driven Callbacks, Scroll Trigger Calculators, Pull-to-Refresh & Infinite Scroll, Pagination State Providers.

What are some open-source alternatives to mescroll/mescroll?

Open-source alternatives to mescroll/mescroll include: samvermette/svpulltorefresh — SVPullToRefresh is a library for adding pull-to-refresh and infinite scrolling behaviors to UIKit scroll views on the… xuelongqy/flutter_easy_refresh — flutter_easy_refresh is a library for implementing pull-to-refresh and infinite scroll pagination within Flutter list… fredwu/jquery-endless-scroll — This project is a jQuery plugin designed to replace traditional page-based navigation with continuous, dynamic content… huntabyte/shadcn-svelte — shadcn-svelte is a collection of accessible and customizable user interface elements for Svelte applications. Rather… metafizzy/infinite-scroll — Infinite Scroll is a JavaScript library that automatically loads and appends the next page of content when a user… ustbhuangyi/better-scroll — Better-scroll is a JavaScript scroll library and touch interaction engine designed to create high-performance…

Open-source alternatives to Mescroll

Similar open-source projects, ranked by how many features they share with Mescroll.
  • samvermette/svpulltorefreshsamvermette avatar

    samvermette/SVPullToRefresh

    4,784View on GitHub↗

    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.

    Objective-C
    View on GitHub↗4,784
  • xuelongqy/flutter_easy_refreshxuelongqy avatar

    xuelongqy/flutter_easy_refresh

    4,060View on GitHub↗

    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

    Darteasy-refreshflutterload-more
    View on GitHub↗4,060
  • fredwu/jquery-endless-scrollfredwu avatar

    fredwu/jquery-endless-scroll

    838View on GitHub↗

    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

    CoffeeScript
    View on GitHub↗838
  • huntabyte/shadcn-sveltehuntabyte avatar

    huntabyte/shadcn-svelte

    8,341View on GitHub↗

    shadcn-svelte is a collection of accessible and customizable user interface elements for Svelte applications. Rather than being distributed as a traditional dependency, these components are provided as source code that is copied directly into the project codebase. The library utilizes a registry-based distribution system, allowing users to install specific UI blocks and components via a command-line interface. This system uses JSON metadata to define dependencies and file paths, while a bootstrapping process automates the configuration of styles and CSS variables. The project integrates Tail

    TypeScriptbits-uishadcn-svelteshadcn-ui
    View on GitHub↗8,341
  • See all 30 alternatives to Mescroll→