The Intersection Observer API provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document's viewport.
Historically, detecting visibility of an element, or the relative visibility of two elements in relation to each other, has been a difficult task for which solutions have been unreliable and prone to causing the browser and the sites the user is accessing to become sluggish. As the web has matured, the need for this kind of information has grown. Intersection information is needed for many reasons, such as:
- Lazy-loading of images or other content as a page is scrolled.
- Implementing "infinite scrolling" web sites, where more and more content is loaded and rendered as you scroll, so that the user doesn't have to flip through pages.
- Reporting of visibility of advertisements in order to calculate ad revenues.
- Deciding whether or not to perform tasks or animation processes based on whether or not the user will see the result.
- HTML5
- CSS3
- JavaScript (ES6+)
- MDN: Intersection Observer API
- IntersectionObserver’s Coming into View
- Smashing Magazine: Building A Dynamic Header With Intersection Observer
- web.dev: Trust is good, observation is better: Intersection Observer v2
- How to use Intersection Observers in a Website
- Kevin Powell: Introduction to the Intersection Observer JavaScript API
- Web Dev Simplified: Learn Intersection Observer In 15 Minutes
- DesignCourse: IntersectionObserver?! Scroll Activated Animations & More with No Dependencies
- pmCodingTutorials: How to code a Javascript Intersection Observer that makes text appear on scroll
- UI DEVELOPER: IntersectionObserver vs MutationObserver. [TAK PATRZY PRZEGLĄDARKA]