jQuery中没有任何名为scrollBottom()
的内容,因此我无法$(window).scrollBottom()==0
希望标题本身的问题清楚。任何帮助将不胜感激。我最感兴趣的是IE7 +,FF3.5 +(Chrome等奖金!)
谢谢!
答案 0 :(得分:2)
您可以使用此功能检查元素是否可见(例如页面底部的元素):
function isScrolledIntoView(elem)
{
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(elem).offset().top;
var elemBottom = elemTop + $(elem).height();
return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom));
}
我用它实现了无休止的滚动效果(比如在facebook中)。
你可以每次检查,用户正在滚动窗口:
function checkAndLoad(){
if(isScrolledIntoView($('#footer'))){
triggerSomething(); //
}
}
$(document).ready(function(){
checkAndLoad();
$(window).scroll(function(){
checkAndLoad();
});
});
答案 1 :(得分:2)
&lt; ironic&gt;使用javascript。&lt; / ironic&gt;
浏览器对此的支持是一个混合包。非IE可以使用window.pageYOffset
,使用IE时,您必须使用document.body.scrollTop
或document.documentElement.scrollTop
,具体取决于浏览器版本和兼容性模式。
你可能不得不对结果进行一些不同程度的数学操作 - 我无法访问多个浏览器来测试工作(我知道),我无法回想起这些工作的细节。< / p>
答案 2 :(得分:2)
检查是否有效
http://jsfiddle.net/sandeepan_nits/3Ys35/2/
我对e.pageY
和$(document).height()
进行了比较,但是小提琴示例并不适用于所有浏览器,并且存在偏移问题。如果我设置了1
的偏移量,它在ff中工作正常。
如果没有其他方法可以完美运行,您可以根据浏览器设置不同的偏移量(IE可能需要分开,其他可能需要分开)或者用范围检查替换相等条件(if(e.pageY == ($(document).height() - offset))
)(if((e.pageY < ($(document).height() + upperLimit)) && (e.pageY > ($(document).height() + lowerLimit)))
)如果可以按照您的要求确定。