美元(窗口).scrollTop与$(window).scroll()事件绑定
$(window).scrollTop tied to $(window).scroll() event acting oddly
我试图触发一个函数,当窗口滚动超过一定数量的像素
下面是我的代码:
$(window).scroll(function(){
if( $(this).scrollTop() >= 100 ) {
someFunction();
} else {
someOtherFunction();
}
});
它有点工作,但是在函数(s)被触发之前滚动后大约有2-4秒的延迟,或者函数根本没有被触发。
在Safari/Chrome中试过了。不知道这是否有帮助!
代码看起来很好,可以正常工作。
正如Wolfram所说,将处理程序直接附加到scroll事件上很少是一个好主意,因为这会触发一个lot,并可能使用户的系统处于爬行状态。
我推荐使用Ben Alman的jquery throttle/debounce插件
它使用jQuery 1.6.1 +鼠标滚轮/滚动条在Chrome15/Safari5.1/FF7 OSX上工作。你在这两个函数中做了什么?为了进行测试,我在someFunction
中放置了一个简单的alert(),而在someOtherFunction
中没有放置任何内容。
请记住,这些函数中的一个在每次触发scroll-event时执行,除非你在它被调用时停止它…例如,当你滚动到100px线以下时,someFunction会被调用很多次。
John Resig:给窗口滚动事件附加处理程序是一个非常非常糟糕的主意。
如果你是按住点击按钮而不是使用滚轮滚动,我相信事件不会触发,直到你释放点击按钮。
你考虑过运行一个循环来检查scrollTop
吗?
我刚刚检查了我的一个旧项目使用窗口滚动事件,它运行完美与相同的事件。
我想你已经把你的脚本包在里面了:
$(function() {
// code
});
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- window.on.scroll事件未启动
- jQuery $(window).scroll事件处理程序关闭但仍在触发
- jQuery on scroll事件未启动
- 为什么调用Window.scroll()会产生一个受信任的事件
- jQuery scroll()事件没有't传播
- Windows.Scroll事件在Android Web View上不起作用
- 如何使用 jquery 停止 $(window).scroll 事件
- jQuery:当使用on .scroll事件和警报时,Firefox似乎无限循环
- 如何在特定事件后停止window.scroll()
- “scroll"事件监听器未触发
- iOS Safari似乎永远不会触发滚动事件,如果鼠标下的元素只有"overflow-y: scroll&qu
- binding scroll事件在AngularJS中不起作用
- 美元(窗口).scrollTop与$(window).scroll()事件绑定
- 如何更新'scroll'resize'事件在JQuery / Javascript中触发
- jQuery Scroll事件触发而不实际滚动
- 是否可以在jQuery .scroll()事件处理程序中使用if-else