Spec-Zone.ru › Web APIs

Элемент: свойство scrollWidth

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

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

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

Это Element.scrollWidth свойство — измерение ширины содержимого элемента, включая содержимое, не отображаемое на экране из-за переполнения.

Значение scrollWidth равно минимальной ширине, необходимой элементу для отображения всего содержимого в области просмотра без использования горизонтальной полосы прокрутки. Ширина измеряется так же, как и в clientWidth: она включает отступы элемента, но не его рамку, отступы или вертикальную полосу прокрутки (если присутствует). Она также может включать ширину псевдоэлементов, таких как ::before или ::after. Если содержимое элемента помещается без необходимости в горизонтальной полосе прокрутки, его scrollWidth равно clientWidth.

Примечание: Это свойство округляет значение до целого числа. Если вам нужно дробное значение, используйте Element.getBoundingClientRect().

Значение

Целое число.

Примеры

Обнаружение переполненного содержимого

В этом примере мы используем свойство scrollWidth для проверки переполнения содержимого элемента за его границы. У нас есть два div элемента, первый с шириной 100px, а второй без фиксированной ширины. Их содержимое идентично, и мы отображаем сообщение о том, переполняет ли каждое из них контейнер.

HTML

<div id="div1">FooBar-FooBar-FooBar-FooBar</div>
<button id="button1">Check for overflow</button>
<pre id="log1"></pre>
<div id="div2">FooBar-FooBar-FooBar-FooBar</div>
<button id="button2">Check for overflow</button>
<pre id="log2"></pre>

CSS

div {
  padding: 0.15em;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

button {
  margin: 0.15em 0 0.5em 0;
}

pre {
  margin: 0.5em 0;
}

#div1 {
  width: 100px;
}

#log1 {
  margin-bottom: 2em;
}

JavaScript

const button1 = document.getElementById("button1");
const button2 = document.getElementById("button2");

const div1 = document.getElementById("div1");
const div2 = document.getElementById("div2");

const log1 = document.getElementById("log1");
const log2 = document.getElementById("log2");

// Check if the scrollWidth is bigger than the clientWidth or not
function isOverflowing(element) {
  return element.scrollWidth > element.clientWidth;
}

function checkOverflow(element, log) {
  if (isOverflowing(element)) {
    log.innerText = `Content is overflowing, scrollWidth is ${element.scrollWidth}px`;
  } else {
    log.innerText = `No overflows, scrollWidth is ${element.scrollWidth}px`;
  }
}

button1.addEventListener("click", () => {
  checkOverflow(div1, log1);
});

button2.addEventListener("click", () => {
  checkOverflow(div2, log2);
});

Результат

Нажмите на кнопки, чтобы проверить, переполняет ли содержимое контейнеры.

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

Спецификация
Модуль CSSOM View
# dom-element-scrollwidth

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

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

См. также

  • Element.clientWidth
  • Определение размеров элементов

© 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/Element/scrollWidth

Spec-Zone.ru

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