jQuery實(shí)現(xiàn)判斷滾動條到底部
判斷滾動條到底部,需要用到DOM的三個屬性值,即scrollTop、clientHeight、scrollHeight。
scrollTop為滾動條在Y軸上的滾動距離。
clientHeight為內(nèi)容可視區(qū)域的高度。
scrollHeight為內(nèi)容可視區(qū)域的高度加上溢出(滾動)的距離。
從這個三個屬性的介紹就可以看出來,滾動條到底部的條件即為scrollTop + clientHeight == scrollHeight。
廢話不多少說,趕緊上代碼(兼容不同的瀏覽器)。
lazyload.js
//滾動條在Y軸上的滾動距離
function getScrollTop(){
var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0;
if(document.body){
bodyScrollTop = document.body.scrollTop;
}
if(document.documentElement){
documentScrollTop = document.documentElement.scrollTop;
}
scrollTop = (bodyScrollTop - documentScrollTop > 0) ? bodyScrollTop : documentScrollTop;
return scrollTop;
}
//文檔的總高度
function getScrollHeight(){
var scrollHeight = 0, bodyScrollHeight = 0, documentScrollHeight = 0;
if(document.body){
bodyScrollHeight = document.body.scrollHeight;
}
if(document.documentElement){
documentScrollHeight = document.documentElement.scrollHeight;
}
scrollHeight = (bodyScrollHeight - documentScrollHeight > 0) ? bodyScrollHeight : documentScrollHeight;
return scrollHeight;
}
//瀏覽器視口的高度
function getWindowHeight(){
var windowHeight = 0;
if(document.compatMode == "CSS1Compat"){
windowHeight = document.documentElement.clientHeight;
}else{
windowHeight = document.body.clientHeight;
}
return windowHeight;
}
window.onscroll = function(){
if(getScrollTop() + getWindowHeight() == getScrollHeight()){
alert("you are in the bottom!");
}
};
lazyload-jQuery.js
$(window).scroll(function(){
var scrollTop = $(this).scrollTop();
var scrollHeight = $(document).height();
var windowHeight = $(this).height();
if(scrollTop + windowHeight == scrollHeight){
alert("you are in the bottom");
}
});
lazyLoad.html
<!doctype html>
<html lang="en" style="height:900px;">
<head>
<meta charset="UTF-8">
<meta name="Author" content="forever">
<link rel="stylesheet" href="css/lazyload.css" />
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<title>lazyLoad</title>
<script type="text/javascript">
$(function(){
var $ul=$("#lazyLoadWrap").find("ul");
$(window).scroll(function(){
var scrollTop = $(this).scrollTop();
var scrollHeight = $(document).height();
var windowHeight = $(this).height();
if(scrollTop + windowHeight == scrollHeight){
for(var i=0;i<6;i++){
$ul.append("<li>Hello</li>");
}
}
});
});
</script>
</head>
<body>
<div id="lazyLoadWrap">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li>12</li>
</ul>
</div>
</body>
</html>
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
jQuery實(shí)現(xiàn)鼠標(biāo)滑過鏈接控制圖片的滑動展開與隱藏效果
這篇文章主要介紹了jQuery實(shí)現(xiàn)鼠標(biāo)滑過鏈接控制圖片的滑動展開與隱藏效果,涉及jQuery鼠標(biāo)事件的響應(yīng)及鏈?zhǔn)讲僮鞯南嚓P(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10
jquery.validate自定義驗(yàn)證用法實(shí)例分析【成功提示與擇要提示】
這篇文章主要介紹了jquery.validate自定義驗(yàn)證用法,結(jié)合實(shí)例形式分析了jQuery成功提示與擇要提示驗(yàn)證操作相關(guān)實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2020-06-06
jquery實(shí)現(xiàn)點(diǎn)擊向下展開菜單項(xiàng)(伸縮導(dǎo)航)效果
這篇文章主要介紹了jquery實(shí)現(xiàn)點(diǎn)擊向下展開菜單項(xiàng)(伸縮導(dǎo)航)效果,通過jquery遍歷及匹配頁面元素并動態(tài)修改頁面元素樣式實(shí)現(xiàn)該功能,需要的朋友可以參考下2015-08-08
jQuery 獲取和設(shè)置select下拉框的值實(shí)現(xiàn)代碼
jQuery獲取和設(shè)置select下拉框值的實(shí)現(xiàn)代碼。需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11
jquery實(shí)現(xiàn)圖片隨機(jī)排列的方法
這篇文章主要介紹了jquery實(shí)現(xiàn)圖片隨機(jī)排列的方法,涉及jQuery操作圖片的相關(guān)技巧,非常具有實(shí)用價值,需要的朋友可以參考下2015-05-05
jQuery 借助插件Lavalamp實(shí)現(xiàn)導(dǎo)航條動態(tài)美化效果
導(dǎo)航條動態(tài)顯示效果借助插件Lavalamp可以輕松實(shí)現(xiàn),以前用animate來實(shí)現(xiàn),效果不是很好2013-09-09
實(shí)例詳解jQuery結(jié)合GridView控件的使用方法
這篇文章主要以實(shí)例的方式詳細(xì)介紹了jQuery結(jié)合GridView控件的使用方法,感興趣的小伙伴們可以參考一下2016-01-01

