first commit
This commit is contained in:
32
node_modules/popper.js/src/utils/getScrollParent.js
generated
vendored
Normal file
32
node_modules/popper.js/src/utils/getScrollParent.js
generated
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
import getStyleComputedProperty from './getStyleComputedProperty';
|
||||
import getParentNode from './getParentNode';
|
||||
|
||||
/**
|
||||
* Returns the scrolling parent of the given element
|
||||
* @method
|
||||
* @memberof Popper.Utils
|
||||
* @argument {Element} element
|
||||
* @returns {Element} scroll parent
|
||||
*/
|
||||
export default function getScrollParent(element) {
|
||||
// Return body, `getScroll` will take care to get the correct `scrollTop` from it
|
||||
if (!element) {
|
||||
return document.body
|
||||
}
|
||||
|
||||
switch (element.nodeName) {
|
||||
case 'HTML':
|
||||
case 'BODY':
|
||||
return element.ownerDocument.body
|
||||
case '#document':
|
||||
return element.body
|
||||
}
|
||||
|
||||
// Firefox want us to check `-x` and `-y` variations as well
|
||||
const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);
|
||||
if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
|
||||
return element;
|
||||
}
|
||||
|
||||
return getScrollParent(getParentNode(element));
|
||||
}
|
Reference in New Issue
Block a user