43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", {
 | 
						|
  value: true
 | 
						|
});
 | 
						|
exports.isBody = isBody;
 | 
						|
exports.default = isOverflowing;
 | 
						|
 | 
						|
var _isWindow = require('dom-helpers/query/isWindow');
 | 
						|
 | 
						|
var _isWindow2 = _interopRequireDefault(_isWindow);
 | 
						|
 | 
						|
var _ownerDocument = require('dom-helpers/ownerDocument');
 | 
						|
 | 
						|
var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
 | 
						|
 | 
						|
var _ownerWindow = require('dom-helpers/ownerWindow');
 | 
						|
 | 
						|
var _ownerWindow2 = _interopRequireDefault(_ownerWindow);
 | 
						|
 | 
						|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 | 
						|
 | 
						|
function isBody(node) {
 | 
						|
  return node && node.tagName.toLowerCase() === 'body';
 | 
						|
}
 | 
						|
 | 
						|
// Do we have a scroll bar?
 | 
						|
function isOverflowing(container) {
 | 
						|
  var doc = (0, _ownerDocument2.default)(container);
 | 
						|
  var win = (0, _ownerWindow2.default)(doc);
 | 
						|
 | 
						|
  /* istanbul ignore next */
 | 
						|
  if (!(0, _isWindow2.default)(doc) && !isBody(container)) {
 | 
						|
    return container.scrollHeight > container.clientHeight;
 | 
						|
  }
 | 
						|
 | 
						|
  // Takes in account potential non zero margin on the body.
 | 
						|
  var style = win.getComputedStyle(doc.body);
 | 
						|
  var marginLeft = parseInt(style.getPropertyValue('margin-left'), 10);
 | 
						|
  var marginRight = parseInt(style.getPropertyValue('margin-right'), 10);
 | 
						|
 | 
						|
  return marginLeft + doc.body.clientWidth + marginRight < win.innerWidth;
 | 
						|
} |