成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何判斷網頁是否已經滾動到瀏覽器底部了

開發 前端
有些需求中,需要當用戶滾動到瀏覽器底部的時候,再加載新的內容。筆者在這里介紹如何使用Jquery判斷用戶是否已經瀏覽到網頁的底部了。

[[207638]]

有些需求中,需要當用戶滾動到瀏覽器底部的時候,再加載新的內容。筆者在這里介紹如何使用Jquery判斷用戶是否已經瀏覽到網頁的底部了。

在了解下面的知識點之前,筆者這里先介紹幾個概念。

  • $(window).height(); //用于獲取瀏覽器顯示區域的高度
  • $(window).width(); //用于獲取瀏覽器顯示區域的寬度
  • $(document.body).height(); //獲取頁面文檔的高度
  • $(document.body).width(); //獲取頁面文檔的寬度
  • $(document).scrollTop(); //獲取垂直滾動條到頂部的垂直距離
  • $(document).scrollLeft(); //獲取水平滾動條到左邊的水平距離

通過上面的知識點,可以知道:瀏覽器顯示區域的高度+垂直滾動條距離頂部距離<=網頁的高度。

有了這個結論,那么實現起來就容易了。下面的代碼實現了,判斷用戶是否瀏覽到了網頁的底部。

  1. $(window).scroll(function(){ 
  2.                 var h=$(document.body).height();//網頁文檔的高度 
  3.                 var c = $(document).scrollTop();//滾動條距離網頁頂部的高度 
  4.                 var wh = $(window).height(); //頁面可視化區域高度 
  5.  
  6.                 if (Math.ceil(wh+c)>=h){ 
  7.                     alert("我已經到底部啦"); 
  8.                 } 
  9.             })  

如果需要判斷用戶是否已經瀏覽到某個元素的話,那么只需要把上面的網頁文檔高度,換成某一個元素距離網頁頂部的距離就可以了。例如:

  1. $(window).scroll(function(){ 
  2.                 var h=$("#div").offset().top;//id為div的元素距離網頁頂部的距離 
  3.                 var c = $(document).scrollTop();//滾動條距離網頁頂部的高度 
  4.                 var wh = $(window).height(); //頁面可視化區域高度 
  5.  
  6.                 if (Math.ceil(wh+c)>=h){ 
  7.                     alert("我已經到底部啦"); 
  8.                 } 
  9.             })  

在這里讀者需要注意,判斷條件中,wh+c取得是滿足大于等于該數字的最小整數。經過筆者的測試,在IE7、8、9、11上都沒有問題。

接下來筆者把上面的代碼封裝為一個插件。

  1. (function ($) { 
  2.         //backcall是回調函數,count表示回調函數被執行的次數,count只有元素在屏幕范圍之外的時候才起作用 
  3.     $.fn.inBottom = function (backcall){ 
  4.         //判斷當前元素是否在目前屏幕可視化區域之內 
  5.         if(this.offset().top >= $(window).height()){ 
  6.             this.inScroll(backcall,count); 
  7.         }else
  8.             this.inWindow(backcall); 
  9.         } 
  10.     }; 
  11.     //直接加載回調函數 
  12.     $.fn.inWindow = function (backcall){ 
  13.         backcall(); 
  14.  
  15.     }; 
  16.     //滾動監聽滑動條,元素滾動到屏幕底部的時候,加載回調函數 
  17.     $.fn.inScroll = function (backcall,count) { 
  18.         var $this=this; 
  19.         $(window).scroll(function(){ 
  20.         //獲得這個元素到文檔頂部的距離 
  21.         var awayDocTop=$this.offset().top
  22.         //獲得滾動條的top 
  23.         var sTop=$(document).scrollTop(); 
  24.         //獲得可視化窗口的高度 
  25.         var wh=$(window).height(); 
  26.         if(Math.ceil(wh+sTop)>=awayDocTop){ 
  27.             if(count>0){ 
  28.                 backcall(); 
  29.                 count--; 
  30.             } 
  31.         }; 
  32.     }); 
  33.     }; 
  34. })(jQuery);  

然后讀者在引入上面的插件文件后,就可以通過類似于下面的代碼調用了。

  1. $("#div").inBottom(function(){ 
  2.     alert("我被回調了"); 
  3. },1);  
責任編輯:龐桂玉 來源: 我的光明的博客
相關推薦

2016-01-08 16:26:10

蘋果瀏覽器Safari

2021-08-28 06:15:49

瀏覽器手機瀏覽器夸克

2016-05-18 14:13:02

Edge瀏覽器微軟

2010-01-28 20:05:35

2013-11-18 14:42:53

瀏覽器渲染

2020-12-17 11:08:20

Safari手機瀏覽器蘋果

2011-10-18 10:30:55

Unix

2012-03-20 11:07:08

2012-03-20 11:41:18

海豚瀏覽器

2012-03-19 17:25:22

2012-03-20 11:31:58

移動瀏覽器

2020-03-24 09:34:00

移動端H5軟鍵盤

2015-06-12 10:08:18

QQ瀏覽器9.0

2012-09-11 13:19:18

2015-09-15 11:35:00

磁塊推薦火狐瀏覽器

2016-09-12 14:23:37

Edge瀏覽器WebVR

2013-11-11 10:04:02

Firefox

2021-01-07 07:52:04

瀏覽器網頁資源加載

2009-03-22 10:08:25

SilverLight瀏覽器

2012-09-03 15:27:43

搜狗瀏覽器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 97精品超碰一区二区三区 | 狠狠干综合视频 | 久久亚洲一区 | 欧美综合国产精品久久丁香 | 久久国产精品偷 | 日本久久综合 | 久热电影 | 欧美久久久久久 | 一区影院 | 久久中文视频 | 欧美黄色片在线观看 | 国产精品日产欧美久久久久 | 成人精品鲁一区一区二区 | 一级片视频免费 | 日韩中文字幕在线播放 | 国产日韩一区二区三区 | 99精品欧美一区二区三区 | 人人种亚洲| 九九九久久国产免费 | 亚洲精品久久久久久一区二区 | 国产欧美日韩综合精品一区二区 | 久久久久国产视频 | 亚洲欧美中文日韩在线v日本 | 一区二区三区在线 | 91成人精品| 五月激情久久 | av免费看片 | 欧美日韩三级在线观看 | 欧洲一区二区视频 | 91精品国产欧美一区二区成人 | 午夜视频在线 | 欧美日韩专区 | 免费一级欧美在线观看视频 | 精品一区二区三区四区外站 | 91欧美精品成人综合在线观看 | 小视频你懂得 | 日韩欧美在线免费观看视频 | 亚洲高清视频一区 | 91福利在线导航 | 久久久久久成人 | 91久久综合亚洲鲁鲁五月天 |