OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-01 eee313007ce5c4f0879d764d56d3a1ba93f6fb37
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import getStyleComputedProperty from './getStyleComputedProperty';
import isIE from './isIE';
/**
 * Returns the offset parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} offset parent
 */
export default function getOffsetParent(element) {
  if (!element) {
    return document.documentElement;
  }
 
  const noOffsetParent = isIE(10) ? document.body : null;
 
  // NOTE: 1 DOM access here
  let offsetParent = element.offsetParent;
  // Skip hidden elements which don't have an offsetParent
  while (offsetParent === noOffsetParent && element.nextElementSibling) {
    offsetParent = (element = element.nextElementSibling).offsetParent;
  }
 
  const nodeName = offsetParent && offsetParent.nodeName;
 
  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
    return element ? element.ownerDocument.documentElement : 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;
}