30 open-source projects similar to imakewebthings/waypoints, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Waypoints alternative.
ScrollMagic is a DOM scroll interaction framework and animation engine used to map scroll progress to callbacks and visual effects. It functions as a library for triggering animations based on a user's scroll position and the proximity of elements to the viewport. The framework employs a plugin-based system to extend core behavior and customize how elements react during movement. This allows for the development of non-standard scrolling interactions and interactive storytelling experiences where content transitions are tied to the scroll position. The system provides capabilities for viewpor
Scrollama is a JavaScript library for scroll-driven storytelling that uses the browser's native IntersectionObserver API to trigger step-based callbacks and animations as the user scrolls through a page. It pins graphic elements using CSS sticky positioning while scrolling through associated text steps, enabling side-by-side narrative experiences without JavaScript-driven layout calculations. The library provides a configurable offset threshold system that accepts a single global offset or per-element data-attribute offsets to define the viewport position that triggers step events. It reports
This project is a React lazy loading component designed to improve frontend performance by deferring the rendering of child elements until they enter the browser viewport. It functions as a resource lifecycle manager and visibility trigger, preventing unnecessary mounts of off-screen components to reduce initial page load times and memory usage. The library provides configuration for visibility triggers, allowing the use of custom offsets and specific scroll containers to determine when a component loads. It includes mechanisms for managing component lifecycles, enabling the choice of whether
react-intersection-observer is a React implementation of the Intersection Observer API designed to track when DOM elements enter or leave the browser viewport. It provides a wrapper and a set of hooks for monitoring element visibility and triggering callbacks when content becomes visible to the user. The library includes a mechanism for DOM occlusion detection to determine if an element is covered by other components or hidden by CSS filters. It also features a polyfill wrapper that provides visibility fallbacks for browsers that do not natively support intersection observer capabilities. Th
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
AOS is a scroll-triggered animation library that controls the execution, timing, and mapping of CSS transitions based on element visibility and browser viewport intersections. It functions as a DOM element animation controller and a viewport intersection trigger to initiate visual transitions as elements enter the screen. The library utilizes a custom CSS transition bridge to map scroll-based triggers to CSS class changes, enabling integration with external styling frameworks. It supports anchor-based animation triggers, allowing the visibility of one page element to act as the trigger point
lozad.js is a JavaScript lazy loading library and viewport-based media loader. It serves as a dependency-free wrapper around the Intersection Observer API to defer the loading of images and iframes until they enter the browser viewport. The project functions as a responsive image loader that optimizes page speed by delivering the most appropriate image sizes and formats based on the user's screen. It includes capabilities for responsive image optimization and layout stabilization through the use of image placeholders to prevent content shifts. The library manages the full lifecycle of deferr
headroom.js is a client-side JavaScript header visibility controller and DOM manipulator. It functions as a scroll-based UI component that hides page headers during downward scrolls and reveals them during upward scrolls to maximize available viewport space. The tool manages dynamic header visibility by monitoring real-time browser scroll events. It optimizes the vertical viewing area of responsive web layouts by toggling the visibility of navigation bars based on the user's scroll direction. The system operates through scroll-position tracking and delta-based state switching to determine mo
This project is a vanilla JavaScript library and web performance optimizer designed to defer the loading of images, videos, and iframes until they enter the browser viewport. It acts as an intersection observer wrapper and adaptive media loader to reduce initial page load times and save bandwidth. The library distinguishes itself by supporting responsive images via srcset and picture tags, as well as CSS background images and animated SVGs. It integrates with native browser loading attributes where available while providing custom fallbacks for unsupported environments. It can also trigger th
UltimateRecyclerView is an advanced list component for Android that provides built-in support for animations, sticky headers, and pull-to-refresh. It functions as a specialized set of UI elements designed to handle draggable, expandable, infinite-scrolling, and swipeable list interfaces. The project includes a draggable list manager for reordering items through drag-and-drop interactions and an expandable list component for toggling additional item details. It implements a swipe-to-dismiss interface for item removal and a list controller that enables infinite scroll pagination by triggering d
lazysizes is a JavaScript lazy loading library and DOM visibility observer that defers the loading of images and iframes until they enter the browser viewport. It functions as a responsive image optimizer and SEO friendly asset loader designed to reduce initial page load times while maintaining search engine visibility. The project calculates optimal image sizes and handles srcset and picture elements to deliver the most appropriate asset based on device resolution and layout. It includes a mechanism for low-quality image placeholders and applies CSS classes during the loading process to trig
react-waypoint is a set of React components and wrappers designed to execute callbacks when specific DOM elements enter or exit the visible screen area. It functions as a viewport visibility tracker that monitors when elements cross predefined spatial boundaries. The project provides a scroll trigger component and event wrapper that allow for custom offset configurations to account for fixed UI elements. These tools can be configured to use a specific DOM node or the global window as the scrollable ancestor for visibility calculations. The library covers several implementation patterns, incl
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
Lazyload is a JavaScript plugin that defers the loading of images until they scroll into the viewport, using the browser's Intersection Observer API to detect visibility. It is designed to speed up initial page load and save bandwidth by delaying off-screen images, and includes a jQuery-compatible wrapper for drop-in integration with existing jQuery code. The plugin distinguishes itself through support for responsive images, loading different sources based on screen size, and a blur-up placeholder effect that shows a low-resolution image that transitions into the sharp version once fully load
Cash is a lightweight DOM manipulation library and HTML element wrapper designed as an alternative to jQuery for selecting and modifying elements in modern browsers. It functions as a modular DOM framework and JavaScript utility library, providing a system to wrap DOM nodes into actionable collections for batch processing. The project is built with a modular design that supports tree-shaking, allowing build tools to exclude unused methods to minimize the final bundle size. It provides mechanisms for extending the core functionality and collection prototypes to implement reusable plugins and c
Quicklink is a JavaScript library and web performance optimization tool that fetches linked resources as they enter the browser viewport. It serves as a viewport-based resource preloader and a wrapper for the browser speculation rules API to reduce perceived page load times. The library implements background page rendering and predictive resource prefetching to enable faster navigation transitions. It manages a cache of prefetched URLs and uses browser speculation rules to render full pages in the background. The tool includes capabilities for resource filtering via regular expressions, netw
vue-lazyload is a Vue.js image lazy loading plugin and frontend asset optimizer. It serves as a viewport visibility observer that defers the loading of images and components until they enter the browser viewport to reduce initial page load times. The project functions as a progressive image loader by managing image placeholders and implementing dynamic source switching. It uses a browser API to monitor when elements enter the viewport, avoiding expensive scroll event listeners to maintain performance. The plugin provides capabilities for image loading state tracking, including custom placeho
This project is a comprehensive JavaScript programming tutorial and language reference. It serves as a web development education resource providing instruction on modern language fundamentals, object-oriented design, and advanced asynchronous programming patterns. The resource functions as both a frontend development guide and a technical reference. It covers core language features such as closures, prototypes, promises, and typed arrays, while providing practical lessons on managing browser data and handling network requests. The content spans several key capability areas, including browser
react-lazyload is a React component and viewport visibility wrapper designed to minimize resource consumption by deferring the display of off-screen UI elements. It functions as a frontend performance optimizer that delays the rendering of images or components until they enter the browser viewport. The library prevents layout shifts by allowing the definition of placeholder dimensions, maintaining page stability while content loads lazily. It manages the transition from these placeholders to actual content using internal state and optional animations. The system provides mechanisms for viewp
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
This project is a jQuery plugin that replaces native browser scrollbars with themed, customizable versions supporting both vertical and horizontal axes. It provides a navigation layer designed to ensure unified scrolling behavior across mouse, keyboard, and touch-enabled devices. The plugin allows for the modification of scrollbar rails and draggers using CSS and pre-set themes to maintain cross-browser UI consistency. It enables control over the physical feel of navigation through adjustable momentum, snapping, and mouse-wheel acceleration. The system includes capabilities for programmatic
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
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
react-waypoint is a React component and viewport tracking tool that executes functions based on the visibility of a DOM node within a scrollable area. It monitors when elements enter or leave the browser viewport or a specified scroll container to trigger callbacks. The project enables the implementation of infinite scrolling, asset lazy loading, and scroll-triggered animations. It allows for custom scroll container definitions and viewport boundary configurations using offsets to determine exactly when events fire. The tool provides element position tracking and visibility monitoring for bo
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
This project is a web component framework and optimized web markup standard designed for high performance web development. It provides a system for building fast-loading websites using a specialized set of HTML components and scripts, complemented by a web performance validation suite to ensure markup compliance. The framework includes a dynamic HTML template engine for rendering data-driven content without full page reloads and a dedicated ad network integration framework. This integration system manages third-party advertisements with built-in viewability metrics and optimized loading seque
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
Ark is a headless UI component library that delivers accessible, cross-framework primitives with behavior governed by finite state machines. It provides unstyled components that encapsulate logic and accessibility — including full keyboard navigation, focus management, and WAI-ARIA support — while leaving visual styling entirely to the consumer. Components expose scoped data attributes for CSS targeting and use state machines to produce predictable, testable interactive behavior across every state transition. The library distinguishes itself through a state propagation model that distributes
vanilla-lazyload is a JavaScript lazy loading library and viewport-based asset loader designed to improve page load speed by deferring the loading of images, videos, iframes, and backgrounds. It functions as an intersection observer media loader that triggers resource downloads and script execution only when elements enter the browser viewport. The project also serves as a native lazy loading polyfill, utilizing native browser loading attributes where supported and providing a JavaScript fallback for older environments. The library distinguishes itself through active bandwidth management, suc
Splide is a framework-agnostic TypeScript library for creating accessible, touch-enabled content carousels and image galleries. It provides a dependency-free implementation of sliders that support drag, swipe, and flick interactions across mobile and desktop browsers. The library distinguishes itself through a comprehensive accessibility layer using ARIA roles and screen reader support. It features a responsive breakpoint system that adapts slide dimensions and behavior based on screen width, alongside a plugin system for extending core functionality with custom components and transition effe