$(window).scroll(function()不能在firefox上运行?

时间:2012-02-27 19:49:12

标签: jquery firefox

为了在Facebook或Twitter上加载页面,向下滚动,我用jquery尝试了这个:

$(window).scroll(function(){
    if  ($(window).scrollTop() == $(document).height() - $(window).height()){
        //do something
    }
}

我遇到了Firefox问题。不适用于Chrome和Safari(IE尚未测试)。

如果我在IF中使用“alert('xx')”,Firefox会崩溃,我必须重新启动它。

我正在使用Mac版的Firefox,但我想这不是一个重要的事实。

任何人都知道这里发生了什么? 感谢。

4 个答案:

答案 0 :(得分:6)

我有同样的问题:它适用于chrome但不适用于Firefox和IE。经过调试后,我发现firefox中的$(document).height() - $(window).height()和$(window).scrollTop()之间存在1 px的差异,但不是chrome。我的工作解决方案在这里:

    if  ($(window).scrollTop() + 1 >= $(document).height() - $(window).height()){

      //do something here

    }

答案 1 :(得分:1)

scroll事件触发了很多次,导致Firefox浏览器崩溃。不使用alert(),而是使用console.log() ...

以下示例显示了触发了多少事件:http://jsfiddle.net/jasper/tQmRU/

答案 2 :(得分:0)

我遇到了类似的问题,因为我在一个滚动处理程序中放了一个Firebug断点,而不是alert()。我改为使用console.log()进行调试,但这并没有导致崩溃。

答案 3 :(得分:0)

我知道这是一篇非常古老的文章,但是我今天在为此苦苦挣扎。当它进入视口时,我正在尝试启动一个计数器。我在style.css中添加了一些样式后,它停止工作。

  html { 
    scroll-behaviour: smooth
  }

所以,这可能对您有利,添加它会导致$(window).scroll函数停止在Firefox和IE上运行。