choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
53 lines (41 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = measureScrollbar;
var scrollbarWidth;
var rootFontSize = 100;
function getRootFontSize() {
if (typeof window !== 'undefined' && document.defaultView) {
var _document$defaultView = document.defaultView.getComputedStyle(document.documentElement),
fontSize = _document$defaultView.fontSize;
if (fontSize !== null) {
return parseFloat(fontSize);
}
}
return 100;
}
function measureScrollbar() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'vertical';
if (typeof window === 'undefined') {
return 0;
}
var fontSize = getRootFontSize();
if (scrollbarWidth && fontSize === rootFontSize) {
return scrollbarWidth;
}
rootFontSize = fontSize;
var scrollDiv = document.createElement('div');
scrollDiv.style.cssText = 'position: absolute;width: 50px;height: 50px;top: -9999px; overflow: scroll';
document.body.appendChild(scrollDiv);
var size = 0;
if (direction === 'vertical') {
size = scrollDiv.offsetWidth - scrollDiv.clientWidth;
} else if (direction === 'horizontal') {
size = scrollDiv.offsetHeight - scrollDiv.clientHeight;
}
document.body.removeChild(scrollDiv);
scrollbarWidth = size / fontSize * 100;
return scrollbarWidth;
}
//# sourceMappingURL=measureScrollbar.js.map