PerformanceElementTiming: naturalWidth property

Limited availability

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

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

The naturalWidth read-only property of the PerformanceElementTiming interface returns the intrinsic width of the image element.

Value

An unsigned 32-bit integer (unsigned long) which is the intrinsic width of the image if this is applied to an image, 0 for text.

Examples

Logging naturalWidth

In this example an <img> element is being observed by adding the elementtiming attribute. A PerformanceObserver is registered to get all performance entries of type "element" and the buffered flag is used to access data from before observer creation. The image file has a width of 1000px and a height of 750px. Calling entry.naturalWidth returns 1000, that being the intrinsic width in pixels.

html
<img
  src="image.jpg"
  alt="a nice image"
  elementtiming="big-image"
  id="myImage" />
js
const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    if (entry.identifier === "big-image") {
      console.log(entry.naturalWidth);
    }
  });
});
observer.observe({ type: "element", buffered: true });

Specifications

Specification
Element Timing API
# ref-for-dom-performanceelementtiming-naturalwidth

Browser compatibility

BCD tables only load in the browser