From 2efedbfdfad405c3e76d8bbadec5afcd808991ad Mon Sep 17 00:00:00 2001 From: Terry Truong Date: Tue, 10 May 2022 14:28:53 +1000 Subject: Obtain scrollbar width dynamically --- src/util.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/util.ts') diff --git a/src/util.ts b/src/util.ts index 78b7870..042f37f 100644 --- a/src/util.ts +++ b/src/util.ts @@ -102,3 +102,21 @@ export function capitalizeWords(str: string){ return str.replace(/\b\w/g, x => x.toUpperCase()); // '\b' matches word boundary, '\w' is like [a-zA-Z0-9_], } +// Dynamically obtains scroll bar width +// From stackoverflow.com/questions/13382516/getting-scroll-bar-width-using-javascript +export function getScrollBarWidth(){ + // Create hidden outer div + let outer = document.createElement('div'); + outer.style.visibility = 'hidden'; + outer.style.overflow = 'scroll'; + document.body.appendChild(outer); + // Create inner div + let inner = document.createElement('div'); + outer.appendChild(inner); + // Get width difference + let scrollBarWidth = outer.offsetWidth - inner.offsetWidth; + // Remove temporary divs + outer.parentNode.removeChild(outer); + // + return scrollBarWidth; +} -- cgit v1.2.3