UNPKG

ng-ytl-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

31 lines (28 loc) 873 B
let scrollbarWidth: number; // Measure scrollbar width for padding body during modal show/hide const scrollbarMeasure = { position: 'absolute', top: '-9999px', width: '50px', height: '50px', overflow: 'scroll', }; export function measureScrollbar(): number { if (typeof document === 'undefined' || typeof window === 'undefined') { return 0; } if (scrollbarWidth) { return scrollbarWidth; } const scrollDiv = document.createElement('div'); for (const scrollProp in scrollbarMeasure) { if (scrollbarMeasure.hasOwnProperty(scrollProp)) { scrollDiv.style[scrollProp] = scrollbarMeasure[scrollProp]; } } document.body.appendChild(scrollDiv); const width = scrollDiv.offsetWidth - scrollDiv.clientWidth; document.body.removeChild(scrollDiv); scrollbarWidth = width; return scrollbarWidth; }