首页 > 解决方案 > 如何确定滚动时是否传递了元素?

问题描述

我试图找出滚动时何时通过了某个元素。

  const elementTarget = document.getElementById('sidebar');

  window.addEventListener('scroll', () => {
    if (window.scrollY > elementTarget.offscrollTop) {
      console.log('passed an element');
    }
  })

示例代码:https ://codepen.io/RomanKomprs/pen/LMrPNJ

编辑: 上面的代码不起作用。当我向下滚动并且 scrollY 大于我的侧边栏元素的偏移量时,条件不会触发。我究竟做错了什么?

标签: javascriptscroll

解决方案


替换offscrollTopgetBoundingClientRect().top

const elementTarget = document.getElementById("sidebar");

window.addEventListener("scroll", () => {
  if (window.scrollY > elementTarget.getBoundingClientRect().top) {
    console.log("passed an element");
  }
});

试试看


推荐阅读