2012-04-08 111 views
0

的JavaScript:JavaScript不工作在Firefox

$(window).scroll(function(){ 
    if ($(window).scrollTop() == $(document).height() - $(window).height()){ 
     $('#footer').show(); 
    } 
}); 

CSS:

#footer { 
    display: none; 
} 

这应该显示在页面底部的隐藏div滚动时,所有的方式,以底端。出于某种原因,隐藏的div从未在Firefox中显示。是否有另一种使用jQuery创建相同效果的方法?

编辑:这里就是它不能在Firefox正常工作的页面

http://safe.tumblr.com/theme/preview/34069

+0

文档中是否有多个ID为#footer的元素? – Niko 2012-04-08 16:10:47

+0

显示功能显然工作。你能调试和检查if语句中的值吗? – Trent 2012-04-08 16:13:38

+0

在你向下滚动它之前,隐藏已经不可见的东西有什么意义? – hohner 2012-04-08 16:13:46

回答

0

有可能是最大值之间的差异小scrollTop和documentHeight - windowHeight给你什么,所以我会建议减去一个小的安全系数:

$(window).scroll(function(){ 
    if ($(window).scrollTop() >= $(document).height() - $(window).height() - 3) { 
     $('#footer').show(); 
    } 
}); 
2

你需要使用这样的:

$(window).scroll(function() { 
    if($(window).scrollTop() + $(window).height() == $(document).height()) { 
     $('#footer').show(); 
    } 
}); 
+0

哪里差他的表情? – Niko 2012-04-08 16:23:38

+0

==而不是 - 在$(window).height()后面 – Ryan 2012-04-08 16:26:00

+0

是的,但它与原始方法有什么不同?数学似乎是完全一样的...... – Niko 2012-04-08 16:30:04