有没有办法阻止$(window).scroll()在页面加载时触发?
在Firefox 4中测试以下代码,即使拔下鼠标,它也会触发.
jQuery(document).ready(function($){ $(window).scroll(function(){ console.log("Scroll Fired"); }); });
解决方法
滚动事件与鼠标无关,只要设置了新的文档滚动位置,就会调用它.并且可以说,当文档加载时设置位置(你可以用一个锚加载它),如果用户按下键盘上的光标键也是如此.我不知道为什么你需要忽略初始滚动事件,但我猜你只想在pageYOffset为零时才这样做.这很简单:
var oldPageYOffset = 0; $(window).scroll(function(){ if (window.pageYOffset != oldPageYOffset) { oldPageYOffset = window.pageYOffset; console.log("Window scrolling changed"); } });
注意:MSIE没有window.pageYOffset属性,因此需要调整上面的内容.也许jQuery提供了跨浏览器的替代方案.