@romaro

Существует ли кроссбраузерный способ вычисления ширины для полосы прокрутки?

Используя эти советы, я пытаюсь вычислять как разницу между document.body.clientWidth и offsetWidth (с учетом бордеров), но хром возвращает одинаковые значения для этих параметров.
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
cannibal_corpse
@cannibal_corpse
Верстальщик руками
Первая ссылка на SOF

function getScrollbarWidth() {

  // Creating invisible container
  const outer = document.createElement('div');
  outer.style.visibility = 'hidden';
  outer.style.overflow = 'scroll'; // forcing scrollbar to appear
  outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps
  document.body.appendChild(outer);

  // Creating inner element and placing it in the container
  const inner = document.createElement('div');
  outer.appendChild(inner);

  // Calculating difference between container's full width and the child width
  const scrollbarWidth = (outer.offsetWidth - inner.offsetWidth);

  // Removing temporary elements from the DOM
  outer.parentNode.removeChild(outer);

  return scrollbarWidth;

}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы