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


var width = PerformanceElementTiming.naturalWidth;


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.


In this example 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.

<img src="image.jpg" alt="a nice image" elementtiming="big-image" id="myImage">
const observer = new PerformanceObserver((list) => {
  let entries = list.getEntries().forEach(function (entry) {
    if (entry.identifier === "big-image") {
observer.observe({ entryTypes: ["element"] });

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.


Specification Status Comment
Element Timing
The definition of 'PerformanceElementTiming.naturalWidth' in that specification.
Editor's Draft Initial definition.

Browser compatibility

BCD tables only load in the browser