如果 ele
元素可滚动,则以下函数返回 true
。
const isScrollable = (ele) => {
// 比较高度以查看元素是否具有可滚动内容
const hasScrollableContent = ele.scrollHeight > ele.clientHeight
// 考虑元素的 overflow-y 样式是否设置为 hidden 或 hidden !important
// 在这些情况下,不会显示滚动条。
const overflowYStyle = window.getComputedStyle(ele).overflowY
const isOverflowHidden = overflowYStyle.indexOf('hidden') !== -1
return hasScrollableContent && !isOverflowHidden
}