UNPKG

1.27 kBJavaScriptView Raw
1import getScrollBarSize from "./getScrollBarSize";
2import setStyle from "./setStyle";
3function isBodyOverflowing() {
4 return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;
5}
6var cacheStyle = {};
7export default (function (close) {
8 if (!isBodyOverflowing() && !close) {
9 return;
10 }
11
12 // https://github.com/ant-design/ant-design/issues/19729
13 var scrollingEffectClassName = 'ant-scrolling-effect';
14 var scrollingEffectClassNameReg = new RegExp("".concat(scrollingEffectClassName), 'g');
15 var bodyClassName = document.body.className;
16 if (close) {
17 if (!scrollingEffectClassNameReg.test(bodyClassName)) return;
18 setStyle(cacheStyle);
19 cacheStyle = {};
20 document.body.className = bodyClassName.replace(scrollingEffectClassNameReg, '').trim();
21 return;
22 }
23 var scrollBarSize = getScrollBarSize();
24 if (scrollBarSize) {
25 cacheStyle = setStyle({
26 position: 'relative',
27 width: "calc(100% - ".concat(scrollBarSize, "px)")
28 });
29 if (!scrollingEffectClassNameReg.test(bodyClassName)) {
30 var addClassName = "".concat(bodyClassName, " ").concat(scrollingEffectClassName);
31 document.body.className = addClassName.trim();
32 }
33 }
34});
\No newline at end of file