Spec-Zone.ru › Web APIs

ResizeObserverEntry

Базовая поддержка Широко доступна *

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2020 года.

* Некоторые части этой функции могут иметь различный уровень поддержки.

  • Узнать больше
  • Показать полную совместимость
  • Отправить отзыв

Интерфейс ResizeObserverEntry представляет собой объект, передаваемый в функцию обратного вызова конструктора ResizeObserver(), который позволяет получить новые размеры наблюдаемого Element или SVGElement.

Свойства экземпляра

ResizeObserverEntry.borderBoxSize Только для чтения

Массив объектов, содержащих новые размеры рамки наблюдаемого элемента при выполнении обратного вызова.

ResizeObserverEntry.contentBoxSize Только для чтения

Массив объектов, содержащих новые размеры области содержимого наблюдаемого элемента при выполнении обратного вызова.

ResizeObserverEntry.devicePixelContentBoxSize Только для чтения

Массив объектов, содержащих новые размеры области содержимого наблюдаемого элемента в пикселях устройства при выполнении обратного вызова.

ResizeObserverEntry.contentRect Только для чтения

Объект DOMRectReadOnly, содержащий новые размеры наблюдаемого элемента при выполнении обратного вызова. Обратите внимание, что это устаревшее свойство, которое сохраняется в спецификации только по соображениям обратной совместимости.

ResizeObserverEntry.target Только для чтения

Ссылка на наблюдаемый Element или SVGElement.

Примечание: Область содержимого — это область, в которой может размещаться содержимое, то есть рамка минус отступы и ширина границы. Рамка включает содержимое, отступы и границу. См. Модель области для получения дополнительной информации.

Методы экземпляра

Нет.

Примеры

Следующий фрагмент взят из примера resize-observer-text.html (посмотреть исходный код).

Обратите внимание, что код охватывает три различных случая совместимости:

  • Некоторые старые браузеры могут поддерживать contentRect , но не contentBoxSize.
  • Старые версии Firefox поддерживают contentBoxSize, но неправильно реализовали его как один объект вместо массива.
  • Современные браузеры поддерживают contentBoxSize как массив объектов, что позволяет им сообщать о размерах блоков для фрагментированных элементов (например, в многоколоночном сценарии).
const resizeObserver = new ResizeObserver((entries) => {
  for (let entry of entries) {
    if (entry.contentBoxSize) {
      // The standard makes contentBoxSize an array...
      if (entry.contentBoxSize[0]) {
        h1Elem.style.fontSize =
          Math.max(1.5, entry.contentBoxSize[0].inlineSize / 200) + "rem";
        pElem.style.fontSize =
          Math.max(1, entry.contentBoxSize[0].inlineSize / 600) + "rem";
      } else {
        // ...but old versions of Firefox treat it as a single item
        h1Elem.style.fontSize =
          Math.max(1.5, entry.contentBoxSize.inlineSize / 200) + "rem";
        pElem.style.fontSize =
          Math.max(1, entry.contentBoxSize.inlineSize / 600) + "rem";
      }
    } else {
      h1Elem.style.fontSize =
        Math.max(1.5, entry.contentRect.width / 200) + "rem";
      pElem.style.fontSize = Math.max(1, entry.contentRect.width / 600) + "rem";
    }
  }
  console.log("Size changed");
});

resizeObserver.observe(divElem);

Спецификации

Спецификация
Resize Observer
# resize-observer-entry-interface

Совместимость с браузерами

Рабочий стол Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
ResizeObserverEntry 64 79 69 51 13.1 64 79 47 13.4 9.0 64
borderBoxSize 84 84 92
69–92Реализовано как один объект, представляющий размер области содержимого, а не массив объектов размеров области содержимого.
70 15.4 84 92
79–92Реализовано как один объект, представляющий размер области содержимого, а не массив объектов размеров области содержимого.
60 15.4 14.0 84
contentBoxSize 84 84 92
69–92Реализовано как один объект, представляющий размер области содержимого, а не массив объектов размеров области содержимого.
70 15.4 84 92
79–92Реализовано как один объект, представляющий размер области содержимого, а не массив объектов размеров области содержимого.
60 15.4 14.0 84
contentRect 64 79 69 51 13.1 64 79 47 13.4 9.0 64
devicePixelContentBoxSize 84 84 93 70 Нет 84 93 60 Нет 14.0 84
target 64 79 69 51 13.1 64 79 47 13.4 9.0 64

© 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/ResizeObserverEntry

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API