我正在尝试在窗口滚动超过一定数量的像素时触发一个函数。
这是我的代码:
$(window).scroll(function(){
if( $(this).scrollTop() >= 100 ) {
someFunction();
} else {
someOtherFunction();
}
});
它有点工作,但是在功能被触发之前滚动后延迟大约2-4秒,否则根本不会触发功能。
在Safari / Chrome中尝试过。不知道这是否有帮助!
答案 0 :(得分:2)
它可以在OSX上的Chrome15 / Safari5.1 / FF7中使用jQuery 1.6.1 +鼠标滚轮/滚动条。你在这两个职能部门做什么?为了进行测试,我在someFunction
中添加了一个简单的alert(),在someOtherFunction
中没有任何内容。
请记住,每次滚动事件触发时都会执行其中一个函数,除非您在调用它时停止它...在100px行下方滚动后,someFunction会被调用很多。
John Resig:It's a very, very, bad idea to attach handlers to the window scroll event.
答案 1 :(得分:2)
代码看起来很好,适合我。
正如Wolfram所说,将处理程序直接附加到滚动事件上并不是一个好主意,因为这会触发批次并且可以使用户的系统爬行。
答案 2 :(得分:0)
如果您通过按住单击按钮而不是使用滚轮来骂,我相信在您释放单击按钮之前,事件不会触发。
您是否考虑过运行一个检查scrollTop
的循环?
修改强> 我只是使用窗口滚动事件检查我的一个旧项目,并且它在同一事件中运行完美。
我认为你把这个脚本包裹在里面:
$(function() {
// code
});