如何在滚动时平滑滚动到下一个目标元素

时间:2019-01-15 20:06:58

标签: javascript scroll click smooth-scrolling

我正在尝试获得类似的滚动到下一个目标元素的解决方案,例如:https://alvarotrigo.com/fullPage/#page3

我的代码使用者:

let disableClick = false
window.addEventListener('scroll', () => {
  window.onscroll = slideMenu;
  if (window.scrollY > elementTarget.offsetTop) {
    const scrolledPx = (window.scrollY - elementTarget.offsetTop);

    if (scrolledPx > 100 && !disableClick) {          
      const link = document.getElementById('2');          
      link.click();
      disableClick = true
    }
  }
} 

问题在于,当我滚动到下一个元素并返回时,将禁用平滑滚动。当我遇到类似或类似的情况时,如何启用点击事件?

if (scrolledPx < 100 && !disableClick) {          
  const link = document.getElementById('2');          
  link.click();
  disableClick = true
}

1 个答案:

答案 0 :(得分:1)

使用css进行平滑滚动

 html {
      scroll-behavior: smooth;
    }