scroll.js 686 B

12345678910111213141516
  1. /**
  2. * 判断元素是否在滚动区域内
  3. * element: 目标元素dom
  4. * scrollContainer: 滚动区域
  5. */
  6. export function isElementInScrollArea(element, scrollContainer) {
  7. const elementRect = element.getBoundingClientRect()
  8. const containerRect = scrollContainer.getBoundingClientRect()
  9. // 判断元素的上边界和下边界是否在滚动容器的上边界和下边界之间
  10. const isElementAboveContainer = elementRect.bottom < containerRect.top
  11. const isElementBelowContainer = elementRect.top > containerRect.bottom
  12. // 如果元素在滚动容器的上下边界之间,则认为它在滚动区域内
  13. return !(isElementAboveContainer || isElementBelowContainer)
  14. }