一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

JQuery Div scrollTop ScrollHeight

 quasiceo 2014-06-03
 

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

    那么,這里的外部div 的scrollTop、scrollHeight 屬性到底是什么呢?
    有人說,scrollTop等于圖中標(biāo)出的a。scrollHeight 等于外部div的高度500px。其實(shí),都不對(duì)。
    其實(shí),圖中標(biāo)出的a、b,對(duì)我們編程寫js代碼沒有任何具體意義,它僅僅具有象征意義。
    實(shí)際上,在js代碼里,滾動(dòng)條是被抽象為一個(gè)“點(diǎn)”來對(duì)待的。scrollHeight其實(shí)不是“滾動(dòng)條的高度”(b),而是表示滾動(dòng)條需要滾動(dòng)的高度,即內(nèi)部div的高度750px。而scrollTop表示滾動(dòng)條(一個(gè)點(diǎn))當(dāng)前的位置在750px里占了多少,不是圖中標(biāo)出的a。
    這時(shí),我們很嘆服Windows的設(shè)計(jì)者,滾動(dòng)條設(shè)計(jì)的如此形象美妙,欺騙了多少頭腦簡單的鼠標(biāo)操作員。a和b的距離分別標(biāo)識(shí)滾動(dòng)條滾動(dòng)了和需要滾動(dòng)的距離,它們之間分別有一個(gè)對(duì)應(yīng)的關(guān)系,但這些不是我們這些開發(fā)應(yīng)用程序的程序員考慮的,是設(shè)計(jì)操作系統(tǒng)GUI圖形接口的程序員考慮的。

2判斷垂直滾動(dòng)條是否到達(dá)底部
    弄明白了以上的概念,編碼其實(shí)就比較簡單了, 以下是示例代碼:

復(fù)制代碼
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www./1999/xhtml">
    <head>
      <title>下拉滾動(dòng)條滾到底部了嗎?</title>
      <script language="javascript" src="jquery-1.10.2.js"></script>
      <script language="javascript">
      $(document).ready(function (){
        var nScrollHight = 0; //滾動(dòng)距離總長(注意不是滾動(dòng)條的長度)
        var nScrollTop = 0;   //滾動(dòng)到的當(dāng)前位置
        var nDivHight = $("#div1").height();

        $("#div1").scroll(function(){
          nScrollHight = $(this)[0].scrollHeight;
          nScrollTop = $(this)[0].scrollTop;
          if(nScrollTop + nDivHight >= nScrollHight)
            alert("滾動(dòng)條到底部了");
          });
      });
      </script>
    <body>
    <div id="div1" style="overflow-y:auto; overflow-x:hidden; height:500px;">
      <div style="background-color:#ccc; height:750px;">IE 和 FF 下測(cè)試通過</div>
    </div>
    </body>
    </html>
復(fù)制代碼

 

    代碼解說:
    內(nèi)部div高度為750,外部div高度為500,所以垂直滾動(dòng)條需要滾動(dòng)750-500=250的距離,就會(huì)到達(dá)底部,參見語句nScrollTop + nDivHight >= nScrollHight。
    程序中,在外部div的scroll(滾動(dòng))事件中偵測(cè)和執(zhí)行if判斷語句,是非常消耗CPU資源的。用鼠標(biāo)拖拉滾動(dòng)條,只要有一個(gè)像素的變動(dòng)就會(huì)觸發(fā)該事件。但點(diǎn)擊滾動(dòng)條兩頭的箭頭,事件觸發(fā)的頻率會(huì)低得多。所以滾動(dòng)條的scroll事件要謹(jǐn)慎使用。
    本示例判斷的是沒有水平滾動(dòng)條的情況,在有水平滾動(dòng)條時(shí),情況會(huì)有細(xì)小的變化,所以nScrollTop + nDivHight >= nScrollHight語句中,需要用“>=”比較運(yùn)算符,而沒有水平滾動(dòng)條的時(shí)候,等號(hào)“=”就足夠了。大家可以實(shí)際測(cè)試一下。還可以判斷水平滾動(dòng)條是否滾動(dòng)到頭了。 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    日本加勒比在线播放一区| av一区二区三区天堂| 中文字幕欧美精品人妻一区| 一级片二级片欧美日韩| 激情中文字幕在线观看| 国产精品欧美一区二区三区| 免费播放一区二区三区四区| 草草草草在线观看视频| 日韩欧美综合中文字幕| 日本精品中文字幕人妻| 国产人妻熟女高跟丝袜| 久草精品视频精品视频精品| 日韩性生活片免费观看| 69老司机精品视频在线观看| 国产真人无遮挡免费视频一区| 欧美日韩国产二三四区| 98精品永久免费视频| 亚洲中文字幕视频在线观看| 亚洲欧美黑人一区二区| 婷婷激情五月天丁香社区| 一本色道久久综合狠狠躁| 高清免费在线不卡视频| 久久机热频这里只精品| 亚洲国产精品一区二区毛片| 亚洲午夜av一区二区| 精品欧美国产一二三区| 日韩欧美三级中文字幕| 亚洲精品中文字幕熟女| 日韩精品一区二区一牛| 国产午夜在线精品视频| 国产成人一区二区三区久久| 国产欧美日产中文一区| 亚洲国产综合久久天堂| 日韩中文高清在线专区| 99热在线精品视频观看| 日本少妇aa特黄大片| 日本一本不卡免费视频| 国产av一区二区三区久久不卡| 午夜传媒视频免费在线观看| 又色又爽又无遮挡的视频| 国产精品刮毛视频不卡|