123456789101112131415161718192021222324252627282930 |
- import { isWindow } from '/@/utils/is';
- let scrollBarWidth: number;
- export default function (): number {
- if (!isWindow) return 0;
- if (scrollBarWidth !== undefined) return scrollBarWidth;
- const outer = document.createElement('div');
- outer.className = 'scrollbar__wrap';
- outer.style.visibility = 'hidden';
- outer.style.width = '100px';
- outer.style.position = 'absolute';
- outer.style.top = '-9999px';
- document.body.appendChild(outer);
- const widthNoScroll = outer.offsetWidth;
- outer.style.overflow = 'scroll';
- const inner = document.createElement('div');
- inner.style.width = '100%';
- outer.appendChild(inner);
- const widthWithScroll = inner.offsetWidth;
- const parentNode = outer.parentNode;
- parentNode && parentNode.removeChild(outer);
- scrollBarWidth = widthNoScroll - widthWithScroll;
- return scrollBarWidth;
- }
|