UNPKG

546 BJavaScriptView Raw
1import getParentNode from "./getParentNode.js";
2import isScrollParent from "./isScrollParent.js";
3import getNodeName from "./getNodeName.js";
4import { isHTMLElement } from "./instanceOf.js";
5export default function getScrollParent(node) {
6 if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {
7 // $FlowFixMe[incompatible-return]: assume body is always available
8 return node.ownerDocument.body;
9 }
10
11 if (isHTMLElement(node) && isScrollParent(node)) {
12 return node;
13 }
14
15 return getScrollParent(getParentNode(node));
16}
\No newline at end of file