Окно: событие resize
Базовая Широко поддерживается
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузера. Она доступна в браузерах с июля 2015 года.
Событие resize срабатывает, когда размер области просмотра документа (окна) был изменён.
Это событие не может быть отменено и не распространяется.
В некоторых более ранних браузерах было возможно зарегистрировать обработчики событий resize на любом элементе HTML. До сих пор можно задать onresize атрибуты или использовать addEventListener() для задания обработчика на любом элементе. Однако resize события срабатывают только на объекте window (то есть, возвращаемом document.defaultView). Только обработчики, зарегистрированные на объекте window , получат resize события.
Хотя resize событие сейчас срабатывает только для окна, вы можете получать уведомления о изменении размера других элементов с помощью API ResizeObserver.
Если событие resize срабатывает слишком часто для вашего приложения, см. Оптимизация window.onresize для управления временем, через которое срабатывает событие.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или задайте свойство обработчика события.
addEventListener("resize", (event) => {});
onresize = (event) => {};
Тип события
Общее Event.
Примеры
Логгер размеров окна
Следующий пример отображает размер окна каждый раз, когда он изменяется.
HTML
<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>
JavaScript
const heightOutput = document.querySelector("#height");
const widthOutput = document.querySelector("#width");
function reportWindowSize() {
heightOutput.textContent = window.innerHeight;
widthOutput.textContent = window.innerWidth;
}
window.onresize = reportWindowSize;
Результат
Примечание: Пример вывода находится в <iframe>, поэтому значения отчётной ширины и высоты относятся к <iframe>, а не к окну, в котором находится эта страница. В частности, будет сложно изменить размер окна, чтобы увидеть разницу в отчётной высоте.
Эффект легче увидеть, если просмотреть пример в отдельном окне.
Эквивалент addEventListener
Обработчик события можно задать с помощью метода addEventListener():
window.addEventListener("resize", reportWindowSize);
Спецификации
| Спецификация |
|---|
| CSSOM View Module # eventdef-window-resize |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
resize_event |
1Chrome не генерирует событиеresize при загрузке страницы. |
12До Edge 79, Edge генерировал событиеresize при загрузке страницы. Это больше не так. |
1До Firefox 68, Firefox генерировал событиеresize при загрузке страницы. Это больше не так. |
7Opera не генерирует событиеresize при загрузке страницы. |
1.1 | 18Chrome Android не генерирует событиеresize при загрузке страницы. |
4До Firefox для Android 68, Firefox для Android генерировал событиеresize при загрузке страницы. Это больше не так. |
10.1Opera не генерирует событиеresize при загрузке страницы. |
1 | 1.0Samsung Internet не генерирует событиеresize при загрузке страницы. |
1WebView не генерирует событиеresize при загрузке страницы. |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Window/resize_event