窗口滚动到某些位置时触发事件

Moa*_*oak 17 javascript browser jquery

我希望在浏览器窗口超出特定点时调用函数
(例如,用户将窗口从顶部向下滚动超过200px

是否有可以绑定的事件,然后我如何检查从浏览器顶部到页面顶部的偏移量?

Khe*_*hez 22

你可以使用onscroll

function testScroll(ev){
    if(window.pageYOffset>400)alert('User has scrolled at least 400 px!');
}
window.onscroll=testScroll
Run Code Online (Sandbox Code Playgroud)

如果你想要一个jQuery解决方案,你可以使用滚动.


Dav*_*ang 19

您正在描述的流行插件是jQuery Waypoints.


如果您不想使用插件,则机制为:

$(window).scrollTop(); // returns pixel value
$(window).scroll(function () { /* code here */ });
Run Code Online (Sandbox Code Playgroud)

但是,因为scroll事件触发很快,所以必须小心地只放置在处理程序内快速执行的代码.一种常见的技术是通过检查是否已经过了一定的时间来"限制"处理事件的速率.