Javascript:用户完成滚动后执行操作

2024-03-13

我正在想办法做到这一点。我有一个盒子清单,每个盒子都是关于150px高的。我正在使用 javascript (和 jquery),并希望在用户向下滚动页面后,页面将自动滚动,以便框与页面的其余部分对齐(也就是说,如果用户滚动并且 y页面位置不能被 150 整除,它将滚动到最近的点)。

现在,我知道我可以使用以下命令激活一个事件.scroll()jquery 事件,我可以使用它移动到某个点.scrollTop()。但用户移动滚动条的每个像素都会激活整个功能。那么有没有办法延迟函数触发,直到用户没有滚动,并且如果他们再次开始滚动,函数将停止?


由于您已经在使用 jQuery,请查看本阿尔曼的超时 plugin http://benalman.com/projects/jquery-dotimeout-plugin/它已经处理了去抖 http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/方法(这就是你所追求的)。

从他的网站上无耻地窃取的示例:

$(window).scroll(function(){
   $.doTimeout( 'scroll', 250, function(){
      // do something computationally expensive
   });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript:用户完成滚动后执行操作 的相关文章