用jQuery检测Div结尾

时间:2011-09-08 11:25:34

标签: jquery html scroll

当用户在jquery中向下滚动滚动条时,我想检测div(动态内容div)结束。 我使用这个代码,但它将按向下滚动的每个像素调用jquery函数。

$j(function($j){
      $j('.products').bind('scroll', function()
        {
          if($j(this).scrollTop() + $j(this).innerHeight()>=$j(this)[0].scrollHeight)
          {
            alert('end reached');
            $j.fn.productsload();
          } 
        });
    }
  );

但是我希望在div结束时提醒并调用函数,否则不会发出任何警报。 任何想法将不胜感激:) .... Thanx

2 个答案:

答案 0 :(得分:1)

我不确定确切的语法,但您可以使用.scrollTop()来获取已经滚动到视图之外的内容的高度。

if ((divsContentHeight - actualDivHeight) == scrollTopValue)
{
  //Tada, you have reached end of scrolling
}

答案 1 :(得分:0)

我找到了解决这个问题的方法,通过从顶部到div结尾查找div高度,并通过.scrollTop()+(window).height()查找总页面滚动,并比较这两个值。

$j(function($j){
      $j('.products').bind('scroll', function()
        {
            var elem = $j('products');
            var divend = elem[0].scrollHeight + elem.offset().top; // full height of div (from top and actual div height).
            var pagescroll = $j(this).scrollTop() + $j(this).height(); // Total page scrolled.

              if(divend <= pagescroll)
              {
                  alert(" Div End reached! ");
                  alert("Full DIV height: "+divend+" Scroll page Height: "+pagescroll); 
              }
       }
   }

所以这是通过jquery向下滚动时找到div结尾的解决方案..... 振作!