首頁  >  文章  >  web前端  >  jQuery判斷滾動條滾到頁面底部腳本

jQuery判斷滾動條滾到頁面底部腳本

巴扎黑
巴扎黑原創
2017-06-29 09:41:331356瀏覽

其實很簡單我們只要用到clientHeight、offsetHeight、scrollTop這三個參數就可以判斷我們目前位置了,具體來跟大家介紹一個例子。

例子,判斷到底部

程式碼如下 

$(window).scroll(function () {
    if ($(document).scrollTop() + $(window).height() >= $(document).height()) {
        alert("哦哦,到底了.");
    }
});

如果要實現拉到底部自動載入內容。只要註冊個滾動條事件:

首先,我們拉動滾動條,從最上面拉到最下面,變化的是scrollTop的值,而這個值是有一個區間的。
這個區間是: [0, (offsetHeight - clientHeight)]
即,滾動條拉動的整個過程的變化在 0 到 (offsetHeight – clientHeight) 範圍之內。

1、判斷捲軸滾動到最底端:scrollTop == (offsetHeight – clientHeight)
2、在捲軸距離底端50px以內: (offsetHeight – clientHeight) – scrollTop 55455e1530f396666b4de004c94201b9= 0.95

#
scrollBottomTest =function(){
     $("#contain").scroll(function(){
         var $this =$(this),
         viewH =$(this).height(),//可见高度
         contentH =$(this).get(0).scrollHeight,//内容高度
         scrollTop =$(this).scrollTop();//滚动高度
        //if(contentH - viewH - scrollTop <= 100) { //到达底部100px时,加载新内容
        if(scrollTop/(contentH -viewH)>=0.95){ //到达底部100px时,加载新内容
        // 这里加载数据..
        }
     });
}

js的判斷


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <meta http-equiv="content-type" content="text/html;charset=utf-8">
      <title>下拉滚动条滚到底部了吗?</title>
      <script language="javascript" src="jquery-1.4.2.min.js"></script>
      <script language="javascript">
      $(document).ready(function (){
        var nScrollHight = 0; //滚动距离总长(注意不是滚动条的长度)
        var nScrollTop = 0;   //滚动到的当前位置
        var nDivHight = $("#div1").height();
        $("#div1").scroll(function(){
          nScrollHight = $(this)[0].scrollHeight;
          nScrollTop = $(this)[0].scrollTop;
          if(nScrollTop + nDivHight >= nScrollHight)
            alert("滚动条到底部了");
          });
      });
      </script>
    <body>
    <div id="div1" style="overflow-y:auto; overflow-x:hidden; height:500px;">
      <div style="background-color:#ccc; height:750px;">IE 和 FF 下测试通过</div>
    </div>
    </body>
    </html>

js的判斷

判斷垂直捲軸是否到達底部

    輪廓了以上的概念,編碼其實比較簡單了, 以下是範例程式碼:
程式碼如下  rrreee
    程式碼解說:    內部div高度為750,外部div高度為500,所以垂直捲軸需要滾動750-500=250的距離,就會到達底部,參見語句nScrollTop + nDivHight >= nScrollHight。

    程式中,在外部div的scroll(滾動)事件中偵測和執行if####判斷語句###,是非常消耗CPU資源的。用滑鼠拖曳捲軸,只要有一個像素的變動就會觸發該事件。但點擊滾動條兩頭的箭頭,事件觸發的頻率會低很多。所以滾動條的scroll事件要謹慎使用。 ###    本範例判斷的是沒有水平捲軸的情況,在有水平捲軸時,情況會有細小的變化,所以nScrollTop + nDivHight >= nScrollHight語句中,需要用「>=」###比較運算子###,而沒有水平捲軸的時候,等號「=」就足夠了。大家可以實際測試一下。還可以判斷水平捲軸是否滾動到頭了。 ###

以上是jQuery判斷滾動條滾到頁面底部腳本的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn