test-nut-ui
Version:
<p align="center"> <img alt="logo" src="https://img11.360buyimg.com/imagetools/jfs/t1/211965/25/7152/22022/61b16785E433119bb/aa41d7a9f7e823f3.png" width="150" style="margin-bottom: 10px;"> </p>
27 lines (26 loc) • 928 B
JavaScript
var canUseDom = !!(typeof window !== "undefined" && typeof document !== "undefined" && window.document && window.document.createElement);
var defaultRoot = canUseDom ? window : void 0;
var overflowStylePatterns = ["scroll", "auto", "overlay"];
function isElement(node) {
var ELEMENT_NODE_TYPE = 1;
return node.nodeType === ELEMENT_NODE_TYPE;
}
function getScrollParent(el) {
var root = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : defaultRoot;
var node = el;
while (node && node !== root && isElement(node)) {
if (node === document.body) {
return root;
}
var _window$getComputedSt = window.getComputedStyle(node), overflowY = _window$getComputedSt.overflowY;
if (overflowStylePatterns.includes(overflowY) && node.scrollHeight > node.clientHeight) {
return node;
}
node = node.parentNode;
}
return root;
}
export {
canUseDom as c,
getScrollParent as g
};