Window: resize event

The resize event fires when the document view (window) has been resized.

This event is not cancelable and does not bubble.

In some earlier browsers it was possible to register resize event handlers on any HTML element. It is still possible to set onresize attributes or use addEventListener() to set a handler on any element. However, resize events are only fired on the window object (i.e. returned by document.defaultView). Only handlers registered on the window object will receive resize events.

While the resize event fires only for the window nowadays, you can get resize notifications for other elements using the ResizeObserver API.

If the resize event is triggered too many times for your application, see Optimizing window.onresize to control the time after which the event fires.


Use the event name in methods like addEventListener(), or set an event handler property.

addEventListener('resize', (event) => {});

onresize = (event) => {};

Event type

Event properties

This interface also inherits properties of its parent, Event.

UIEvent.detail Read only

Returns a long with details about the event, depending on the event type.

UIEvent.sourceCapabilities Experimental Read only

Returns an instance of the InputDeviceCapabilities interface, which provides information about the physical device responsible for generating a touch event.

UIEvent.view Read only

Returns a WindowProxy that contains the view that generated the event.

UIEvent.which Deprecated Non-standard Read only

Returns the numeric keyCode of the key pressed, or the character code (charCode) for an alphanumeric key pressed.


Window size logger

The following example reports the window size each time it is resized. Bear in mind that since the example is running in an <iframe>, you'll need to actually get the <iframe> to resize before you see an effect.

<p>Resize the browser window to fire the <code>resize</code> event.</p>
<p>Window height: <span id="height"></span></p>
<p>Window width: <span id="width"></span></p>
const heightOutput = document.querySelector('#height');
const widthOutput = document.querySelector('#width');

function reportWindowSize() {
  heightOutput.textContent = window.innerHeight;
  widthOutput.textContent = window.innerWidth;

window.onresize = reportWindowSize;

addEventListener equivalent

You could set up the event handler using the addEventListener() method:

window.addEventListener('resize', reportWindowSize);


Unknown specification
# resizing-viewports

Browser compatibility

BCD tables only load in the browser