<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      jquery判斷div滾動條到底部

         jQuery 里和滾動條有關的概念很多,但是有三個屬性和滾動條的拖動有關,就是:scrollTop、scrollLeft、scrollHeight。其中 scrollHeight 屬性,互聯網上幾乎搜素不到關于它的應用技巧,而我正好需要用到它。

         我們現在只探討和垂直滾動有關的 scrollTop、scrollHeight 屬性。

         一、滾動條有關屬性的正確理解:

         假設有以下Html代碼:

      <div id="div1" style="overflow-y:auto; overflow-x:hidden; height:500px;">
        <div style="height:750px;">
        </div>
      </div>

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

      那么,這里的外部div 的scrollTop、scrollHeight 屬性到底是什么呢?
         有人說,scrollTop等于圖中標出的a。scrollHeight 等于外部div的高度500px。其實,都不對。
         其實,圖中標出的a、b,對我們編程寫js代碼沒有任何具體意義,它僅僅具有象征意義。
         實際上,在js代碼里,滾動條是被抽象為一個“點”來對待的。scrollHeight其實不是“滾動條的高度”(b),而是表示滾動條需要滾動的高度,即內部div的高度750px。而scrollTop表示滾動條(一個點)當前的位置在750px里占了多少,不是圖中標出的a。

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

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

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

      <!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;   //滾動到的當前位置
             var nDivHight = $("#div1").height();
             $("#div1").scroll(function(){
               nScrollHight = $(this)[0].scrollHeight;
               nScrollTop = $(this)[0].scrollTop;
           var paddingBottom = parseInt( $(this).css('padding-bottom') ),paddingTop = parseInt( $(this).css('padding-top') );
      if(nScrollTop + paddingBottom + paddingTop + 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>

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

       

      posted @ 2015-09-28 16:18  nd  閱讀(12574)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲国产精品久久久天堂麻豆宅男| 亚洲一区成人在线视频| 日韩精品一区二区蜜臀av| 一本大道久久东京热AV| 漂亮的保姆hd完整版免费韩国| 亚洲aⅴ综合av国产八av| 国产女人喷潮视频在线观看| 天天躁夜夜踩很很踩2022| 久久美女夜夜骚骚免费视频| 亚洲精品一区二区制服| 亚洲国产成人久久精品不卡| 青草青草久热国产精品| 强奷乱码中文字幕| 欧美日韩精品一区二区视频| 国产午夜大地久久| 国产精品中文一区二区| 国产午夜精品福利91| 国产丝袜视频一区二区三区| 99精品国产一区在线看| 久久精品国产福利一区二区| 久久婷婷大香萑太香蕉AV人| 午夜精品一区二区三区成人| 精品卡通动漫亚洲AV第一页| 亚洲成av人片天堂网老年人| 中文字幕亚洲综合小综合| 久久精品国产99国产精品严洲| 久久精品无码精品免费专区| 亚洲高请码在线精品av| 宜兰县| 狠狠综合久久综合88亚洲| 亚洲欧美综合人成在线| 人妻出轨av中文字幕| 天堂中文8资源在线8| 美女扒开奶罩露出奶头视频网站| 国产免费午夜福利片在线| 国产精品99中文字幕| 久久亚洲精品国产精品尤物| 在线观看国产一区亚洲bd| 98精品全国免费观看视频| 亚洲精品一区二区口爆| 最新中文字幕国产精品|