IntersectionObserver: trackVisibility property

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

The trackVisibility read-only property of the IntersectionObserver interface indicates whether the observer is tracking target visibility in addition to element intersections.

Value

true if visibility is being tracked for intersection calculations, and false otherwise.

The value is set using the option.trackVisibility argument to the IntersectionObserver() constructor.

Description

When not tracking visibility, the observer provides notifications when the target element is scrolled into the root element's viewport. However this doesn't tell you if the target element has compromised visibility — it might be partially covered by another element, have reduced opacity, or be distorted by a filter, transform, or other modification.

When tracking visibility, only elements that the browser considers to be visible are shown as intersecting. The algorithm is conservative, and may omit elements that are technically visible, such as those with only a slight opacity reduction.

Note that the calculation of visibility is computationally expensive. To avoid the operation running too often, a delay is used to limit the minimum reporting period.

Specifications

Specification
Intersection Observer
# dom-intersectionobserver-trackvisibility

Browser compatibility

See also