@jdcfe/yep-react
Version:
一套移动端的React组件库
49 lines (34 loc) • 1.17 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = function _default(node) {
if (!(node instanceof HTMLElement)) {
return document.documentElement;
}
var excludeStaticParent = node.style.position === 'absolute';
var overflowRegex = /(scroll|auto)/;
var parent = node;
while (parent) {
if (!parent.parentNode) {
return node.ownerDocument || document.documentElement;
}
var style = window.getComputedStyle(parent);
var position = style.position;
var overflow = style.overflow; // @ts-ignore
var overflowX = style['overflow-x']; // @ts-ignore
var overflowY = style['overflow-y'];
if (position === 'static' && excludeStaticParent) {
// @ts-ignore
parent = parent.parentNode;
continue;
} // @ts-ignore
if (overflowRegex.test(overflow) && overflowRegex.test(overflowX) && overflowRegex.test(overflowY)) {
return parent;
} // @ts-ignore
parent = parent.parentNode;
} // @ts-ignore
return node.ownerDocument || node.documentElement || document.documentElement;
};
exports.default = _default;
;