Skip to content

Instantly share code, notes, and snippets.

@chrisryana
Created October 7, 2020 14:32
Show Gist options
  • Save chrisryana/cee98ea48b8347579a4d4a2dd852e96d to your computer and use it in GitHub Desktop.
Save chrisryana/cee98ea48b8347579a4d4a2dd852e96d to your computer and use it in GitHub Desktop.
Получить ширину скроллбара (для macOS если стоит overflow: auto)
.scrollbar-pain {
width: 100px;
height: 100px;
overflow: scroll;
position: absolute;
top: -9999px;
}
useEffect(() => {
// создаем элемент за пределами страницы
const scrollDiv = document.createElement('div');
scrollDiv.className = 'scrollbar-measure';
document.body.appendChild(scrollDiv);
const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
// обновляем state
setScrollWidth(scrollbarWidth);
// удаляем элемент
document.body.removeChild(scrollDiv);
// вызываем один раз при рендеринге компонента
}, []);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment