Skip to content

获取元素的第一个可滚动父元素

从给定的元素开始,我们遍历所有父元素,直到document() 的根目录。对于每个父节点,我们检查它是否是可滚动节点。

js
const isScrollable = function (ele) {
  const hasScrollableContent = ele.scrollHeight > ele.clientHeight

  const overflowYStyle = window.getComputedStyle(ele).overflowY
  const isOverflowHidden = overflowYStyle.indexOf('hidden') !== -1

  return hasScrollableContent && !isOverflowHidden
}

const getScrollableParent = function (ele) {
  return !ele || ele === document.body
    ? document.body
    : isScrollable(ele)
    ? ele
    : getScrollableParent(ele.parentNode)
}

如有转载或 CV 的请标注本站原文地址