其實很簡單我們只要用到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 <= 50
3、在捲軸距離底端5%以內:scrollTop / (offsetHeight – clientHeight) >= 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>
輪廓了以上的概念,編碼其實比較簡單了, 以下是範例程式碼:
程式碼如下 rrreee
程式碼解說: 內部div高度為750,外部div高度為500,所以垂直捲軸需要滾動750-500=250的距離,就會到達底部,參見語句nScrollTop + nDivHight >= nScrollHight。
以上是jQuery判斷滾動條滾到頁面底部腳本的詳細內容。更多資訊請關注PHP中文網其他相關文章!