Spec-Zone.ru › Web APIs

ResizeObserverEntry: свойство target

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

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

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Чтение-только свойство target интерфейса ResizeObserverEntry возвращает ссылку на Element или SVGElement, которые наблюдаются.

Значение

Элемент Element или SVGElement, который наблюдается.

Примеры

Следующий фрагмент взят из примера resize-observer-border-radius.html (посмотреть исходный код) . В этом примере показана зелёная рамка, размер которой задан в процентах от размера viewport. При изменении размера viewport, скругленные углы рамки изменяются пропорционально размеру рамки. Мы можем просто реализовать это с помощью border-radius с процентами, но это быстро приводит к уродливым эллиптическим углам; это решение обеспечивает красивые квадратные углы, которые масштабируются вместе с размером рамки.

Чтобы получить ссылку на наблюдаемый элемент и обновить его значение border-radius после каждого изменения, мы используем свойство target каждого элемента — entry.target.style.borderRadius.

const resizeObserver = new ResizeObserver((entries) => {
  for (const entry of entries) {
    if (entry.contentBoxSize) {
      entry.target.style.borderRadius = `${Math.min(
        100,
        entry.contentBoxSize.inlineSize / 10 +
          entry.contentBoxSize.blockSize / 10,
      )}px`;
    } else {
      entry.target.style.borderRadius = `${Math.min(
        100,
        entry.contentRect.width / 10 + entry.contentRect.height / 10,
      )}px`;
    }
  }
});

resizeObserver.observe(document.querySelector("div"));

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

Спецификация
Resize Observer
# dom-resizeobserverentry-target

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

Десктоп Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
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/target

Spec-Zone.ru

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