utils.js 998 B

1234567891011121314151617181920212223242526272829
  1. export var zeroGap = {
  2. left: 0,
  3. top: 0,
  4. right: 0,
  5. gap: 0,
  6. };
  7. var parse = function (x) { return parseInt(x || '', 10) || 0; };
  8. var getOffset = function (gapMode) {
  9. var cs = window.getComputedStyle(document.body);
  10. var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];
  11. var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];
  12. var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];
  13. return [parse(left), parse(top), parse(right)];
  14. };
  15. export var getGapWidth = function (gapMode) {
  16. if (gapMode === void 0) { gapMode = 'margin'; }
  17. if (typeof window === 'undefined') {
  18. return zeroGap;
  19. }
  20. var offsets = getOffset(gapMode);
  21. var documentWidth = document.documentElement.clientWidth;
  22. var windowWidth = window.innerWidth;
  23. return {
  24. left: offsets[0],
  25. top: offsets[1],
  26. right: offsets[2],
  27. gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),
  28. };
  29. };