The IntersectionObserverEntry interface's read-only isIntersecting property is a Boolean value which is true if the target element intersects with the intersection observer's root. If this is true, then, the IntersectionObserverEntry describes a transition into a state of intersection; if it's false, then you know the transition is from intersecting to not-intersecting.


var isIntersecting = IntersectionObserverEntry.isIntersecting;


A Boolean value which indicates whether the target element has transitioned into a state of intersection (true) or out of a state of intersection (false).


In this simple example, an intersection callback is used to update a counter of how many targeted elements are currently intersecting with the intersection root.

function intersectionCallback(entries) {
  entries.forEach(function(entry) {
    if (entry.isIntersecting) {
      intersectingCount += 1;
    } else {
      intersectingCount -= 1;

To see a more concrete example, take a look at Handling intersection changes in Timing element visibility with the Intersection Observer API.


Intersection Observer
# dom-intersectionobserverentry-isintersecting

Browser compatibility

BCD tables only load in the browser