Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

switchScrollingEffect.js 1.6 KiB

3 lat temu
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _getScrollBarSize = _interopRequireDefault(require("./getScrollBarSize"));
  7. var _setStyle = _interopRequireDefault(require("./setStyle"));
  8. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  9. function isBodyOverflowing() {
  10. return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;
  11. }
  12. var cacheStyle = {};
  13. var _default = function _default(close) {
  14. if (!isBodyOverflowing() && !close) {
  15. return;
  16. } // https://github.com/ant-design/ant-design/issues/19729
  17. var scrollingEffectClassName = 'ant-scrolling-effect';
  18. var scrollingEffectClassNameReg = new RegExp("".concat(scrollingEffectClassName), 'g');
  19. var bodyClassName = document.body.className;
  20. if (close) {
  21. if (!scrollingEffectClassNameReg.test(bodyClassName)) return;
  22. (0, _setStyle.default)(cacheStyle);
  23. cacheStyle = {};
  24. document.body.className = bodyClassName.replace(scrollingEffectClassNameReg, '').trim();
  25. return;
  26. }
  27. var scrollBarSize = (0, _getScrollBarSize.default)();
  28. if (scrollBarSize) {
  29. cacheStyle = (0, _setStyle.default)({
  30. position: 'relative',
  31. width: "calc(100% - ".concat(scrollBarSize, "px)")
  32. });
  33. if (!scrollingEffectClassNameReg.test(bodyClassName)) {
  34. var addClassName = "".concat(bodyClassName, " ").concat(scrollingEffectClassName);
  35. document.body.className = addClassName.trim();
  36. }
  37. }
  38. };
  39. exports.default = _default;