怎么用jquery判斷div滾動條到底部

這篇“怎么用jquery判斷div滾動條到底部”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么用jquery判斷div滾動條到底部”文章吧。

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比祿勸網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式祿勸網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋祿勸地區(qū)。費用合理售后完善,10年實體公司更值得信賴。

一、滾動條有關(guān)屬性的正確理解:

假設(shè)有以下html代碼:

<div id="div1" >
  <div >
  </div>
</div>

由于內(nèi)部的div標(biāo)簽高度比外部的長,并且外部的div允許自動出現(xiàn)垂直滾動條,所以用瀏覽器打開后,可以看到垂直滾動條。滾動條向下拖動一段距離,看到的頁面效果如下(右部的a、b是我抓圖后,用PS標(biāo)出來的):

怎么用jquery判斷div滾動條到底部

那么,這里的外部div 的scrollTop、scrollHeight 屬性到底是什么呢?

有人說,scrollTop等于圖中標(biāo)出的a。scrollHeight 等于外部div的高度500px。其實,都不對。

其實,圖中標(biāo)出的a、b,對我們編程寫js代碼沒有任何具體意義,它僅僅具有象征意義。

實際上,在js代碼里,滾動條是被抽象為一個“點”來對待的。scrollHeight其實不是“滾動條的高度”(b),而是表示滾動條需要滾動的高度,即內(nèi)部div的高度750px。而scrollTop表示滾動條(一個點)當(dāng)前的位置在750px里占了多少,不是圖中標(biāo)出的a。

這時,我們很嘆服Windows的設(shè)計者,滾動條設(shè)計的如此形象美妙,欺騙了多少頭腦簡單的鼠標(biāo)操作員。a和b的距離分別標(biāo)識滾動條滾動了和需要滾動的距離,它們之間分別有一個對應(yīng)的關(guān)系,但這些不是我們這些開發(fā)應(yīng)用程序的程序員考慮的,是設(shè)計操作系統(tǒng)GUI圖形接口的程序員考慮的。

2判斷垂直滾動條是否到達底部

廓清了以上的概念,編碼其實就比較簡單了, 以下是示例代碼:

<!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" mce_src="jquery-1.4.2.min.js"></script>
   <script language="javascript">
   $(document).ready(function (){
    var nScrollHight = 0; //滾動距離總長(注意不是滾動條的長度)
    var nScrollTop = 0;  //滾動到的當(dāng)前位置
    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" >
   <div >IE 和 FF 下測試通過</div>
  </div>
  </body>
  </html>

代碼解說:

內(nèi)部div高度為750,外部div高度為500,所以垂直滾動條需要滾動750-500=250的距離,就會到達底部,參見語句nScrollTop + nDivHight >= nScrollHight。

程序中,在外部div的scroll(滾動)事件中偵測和執(zhí)行if判斷語句,是非常消耗CPU資源的。用鼠標(biāo)拖拉滾動條,只要有一個像素的變動就會觸發(fā)該事件。但點擊滾動條兩頭的箭頭,事件觸發(fā)的頻率會低得多。所以滾動條的scroll事件要謹(jǐn)慎使用。

本示例判斷的是沒有水平滾動條的情況,在有水平滾動條時,情況會有細(xì)小的變化,所以nScrollTop + nDivHight >= nScrollHight語句中,需要用“>=”比較運算符,而沒有水平滾動條的時候,等號“=”就足夠了。大家可以實際測試一下。還可以判斷水平滾動條是否滾動到頭了。

以上就是關(guān)于“怎么用jquery判斷div滾動條到底部”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞標(biāo)題:怎么用jquery判斷div滾動條到底部
本文來源:http://bm7419.com/article46/jjeghg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、App設(shè)計、網(wǎng)站收錄網(wǎng)站設(shè)計公司、搜索引擎優(yōu)化、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計