Jquery, scrollTop == 过度滚动?

Jquery, scrollTop == overscrolled?

我想在 $(window).scrollTop == 500 时开始一个活动。如果我滚动缓慢,它会起作用,但如果我快速滚动,什么也不会发生。你有什么想法可以解决我的问题吗?

谢谢。

scroll 事件针对元素滚动经过的每个像素触发时,就会发生这种情况。这可能意味着事件处理程序在一秒钟内被触发数百次,因此浏览器将 'skip' 根据 UI 线程的滴答率处理其中一些事件。

这意味着它可能只在滚动时检测某些 scrollTop 值,因此 scrollTop 可能只在 480499522 处读取,给定您的代码样本。因此,即使用户滚动超过 500 像素,您对 == 500 的测试也不会命中。滚动速度变慢会减弱这种效果,因此它对你有用。

解决这个问题的方法是通过检查一系列 scrollTop 值来使您的代码更健壮,例如在您的示例中使用 > 而不是 =

if ($(window).scrollTop >= 500) {
  console.log('You have scrolled down over 500px');
}