Files
phpvms/public/vendor/popper.js/packages/popper/src/utils/getOffsetParent.js
T
2017-08-15 18:07:14 -05:00

29 lines
867 B
JavaScript

import getStyleComputedProperty from './getStyleComputedProperty';
/**
* Returns the offset parent of the given element
* @method
* @memberof Popper.Utils
* @argument {Element} element
* @returns {Element} offset parent
*/
export default function getOffsetParent(element) {
// NOTE: 1 DOM access here
const offsetParent = element && element.offsetParent;
const nodeName = offsetParent && offsetParent.nodeName;
if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
return window.document.documentElement;
}
// .offsetParent will return the closest TD or TABLE in case
// no offsetParent is present, I hate this job...
if (
['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&
getStyleComputedProperty(offsetParent, 'position') === 'static'
) {
return getOffsetParent(offsetParent);
}
return offsetParent;
}