$(document).ready(function() {$(window).scroll(function() { if ($(document).scrollTop()<=0){alert("滚动条已经到达顶部为0");} if ($(document).scrollTop() >= $(document).height() - $(window).height()) {alert("滚动条已经到达底部为" + $(document).scrollTop());}});});二、jQuery检测div中滚动条到达底部
如下检测id为scroll_div滚动条到达底部事件:
<div id="scroll_div" style="overflow-y:auto; overflow-x:hidden;margin:100px;height:500px;border:1px solid red"><div style="height:10000px">来自于www.jb51.net脚本之家<br>来自于www.jb51.net脚本之家<br>来自于www.jb51.net脚本之家<br></div></div>首先需要理解几个概念:
$(document).ready(function() {$("#scroll_div").scroll(function(){var divHeight = $(this).height();var nScrollHeight = $(this)[0].scrollHeight;var nScrollTop = $(this)[0].scrollTop;$("#input1").val(nScrollHeight);$("#input2").val(nScrollTop);$("#input3").val(divHeight);if(nScrollTop + divHeight >= nScrollHeight) {alert("到达底部了");}});});如果是异步加载数据,数据没加载完,又触犯了同一页的数据加载请求,我通常是加一个flag$(document).ready(function() {var flag = false;$("#scroll_div").scroll(function(){if(flag){//数据加载中return false;}var divHeight = $(this).height();var nScrollHeight = $(this)[0].scrollHeight;var nScrollTop = $(this)[0].scrollTop;$("#input1").val(nScrollHeight);$("#input2").val(nScrollTop);$("#input3").val(divHeight);if(nScrollTop + divHeight >= nScrollHeight) {//请求数据flag = true;alert("到达底部了");}});});