Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The intersectionRect read-only property of the PerformanceElementTiming interface returns the rectangle of the element within the viewport.


A DOMRectReadOnly which is the rectangle of the element within the viewport.

For display images this is the display rectangle of the image within the viewport. For text this is the display rectangle of the node in the viewport. This being the smallest rectangle that contains the union of all text nodes that belong to the element.


In this example calling entry.intersectionRect returns a DOMRectReadOnly object with the display rectangle of the image.

  alt="a nice image"
  id="myImage" />
const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    if (entry.identifier === "big-image") {
observer.observe({ entryTypes: ["element"] });

Note: This example uses the PerformanceObserver interface to create a list of performance measurement events. In our case we observe the PerformanceEntry.entrytype element in order to use the PerformanceElementTiming interface.


Element Timing API
# ref-for-dom-performanceelementtiming-intersectionrect

Browser compatibility

BCD tables only load in the browser