Spec-Zone.ru › Web APIs

Диапазон: метод getBoundingClientRect()

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

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

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

Метод Range.getBoundingClientRect() возвращает объект DOMRect, который определяет границы содержимого диапазона; это прямоугольник, охватывающий объединение прямоугольников границ всех элементов в диапазоне.

Этот метод полезен для определения координат курсора или выделения внутри текстового поля. Подробную информацию о возвращаемом значении см. в Element.getBoundingClientRect().

Синтаксис

getBoundingClientRect()

Параметры

Нет.

Возвращаемое значение

Объект DOMRect, который охватывает объединение прямоугольников границ всех элементов в диапазоне.

Примеры

HTML

<div id="highlight"></div>
<p>
  This example positions a "highlight" rectangle behind the contents of a range.
  The range's content <em>starts here</em> and continues on until it
  <em>ends here</em>. The bounding client rectangle contains everything selected
  in the range.
</p>

CSS

#highlight {
  background: yellow;
  position: absolute;
  z-index: -1;
}

p {
  width: 200px;
}

JavaScript

const range = document.createRange();
range.setStartBefore(document.getElementsByTagName("em").item(0));
range.setEndAfter(document.getElementsByTagName("em").item(1));

const clientRect = range.getBoundingClientRect();
const highlight = document.getElementById("highlight");
highlight.style.left = `${clientRect.x}px`;
highlight.style.top = `${clientRect.y}px`;
highlight.style.width = `${clientRect.width}px`;
highlight.style.height = `${clientRect.height}px`;

Результат

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

Спецификация
CSSOM View Module
# dom-range-getboundingclientrect

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
getBoundingClientRect 4 12 4 ≤12.1 5 18 4 ≤12.1 4 1.0 ≤37

См. также

  • Range.getClientRects() - более подробный результат для непрямоугольных диапазонов (например, когда выделение переносится на следующую строку);
  • Element.getBoundingClientRect()
  • Document.caretPositionFromPoint() - для получения (узел, смещение) из координат экрана.

© 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/Range/getBoundingClientRect

Spec-Zone.ru

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