2010-12-20 39 views
1
一个页面的底部

没有什么所谓的jQuery的scrollBottom()是的,所以我不能做$(window).scrollBottom()==0如何确定,如果我们在使用Javascript/jQuery的

希望这个问题是从标题本身清晰。任何帮助将不胜感激。我最感兴趣的是IE7 +,FF3.5 +(Chrome等都是红利!)

谢谢!

+0

阅读此链接http://ettoz.wordpress.com/2009/04/16/jquery-fixed-bar/ – 2010-12-20 11:48:30

+0

它不会解决您的问题,但有助于您的问题 – 2010-12-20 11:49:05

+0

这是如何解决我的问题?你的意思是在底部添加一个固定栏...或者什么东西? – ragebiswas 2010-12-20 12:49:46

回答

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(); 
    }); 
}); 
+0

Stoefln,我基本上只是想看看我是否接近页面的底部。我的问题是完全一样的http://stackoverflow.com/questions/3057892/checking-is-near-at-the-bottom-of-the-page - 除了给出的解决方案不适用于我的IE8 。 – ragebiswas 2010-12-20 10:23:44

2

<讽刺>使用JavaScript。 </ironic >

浏览器对此的支持是一个混杂的包。非IE可以使用window.pageYOffset,对于IE,您必须使用document.body.scrollTopdocument.documentElement.scrollTop,具体取决于浏览器版本和兼容性模式。

您可能需要对结果进行一些不同级别的数学操作 - 我无法访问多个浏览器以在工作中进行测试(我知道),但我不记得这些操作的细节。

+0

+1教育我在IE中的'document.body'和'document.documentElement'之间的区别! – ragebiswas 2010-12-22 05:50:43

2

检查,如果这个工程

http://jsfiddle.net/sandeepan_nits/3Ys35/2/

我比较了e.pageY$(document).height(),但小提琴例子并不适用于所有的浏览器准确地工作,有一个弥补问题。如果我设置的偏移量为1,它可以在ff中正常工作。如果没有其他工作完美的话,你可以根据浏览器设置不同的偏移量(IE需要分开,其他的可能需要分开),否则用范围检查(if((e.pageY < ($(document).height() + upperLimit)) && (e.pageY > ($(document).height() + lowerLimit))))代替平等条件(if(e.pageY == ($(document).height() - offset)))需求。

+0

谢谢Sandeepan,但这是在IE8为你工作?我的意思是“达到底部”从未出现过。不幸的是,我需要从底部精确的像素。 – ragebiswas 2010-12-20 10:38:07

+1

@Raj - 检查http://jsfiddle.net/sandeepan_nits/3Ys35/7/ offset = 16适用于IE 6。我想这是用这种方法可以达到的最接近的。一旦你确定了所需的偏移量,你浏览器检测,或更好的jQuery的功能检测来放置条件。 – 2010-12-20 10:50:59

+0

谢谢,但我不认为各种浏览器的各种偏移是一个干净的解决方案:( – ragebiswas 2010-12-20 12:50:23

相关问题