jQuery检测滚动条是否到达底部


Posted in Javascript onDecember 15, 2015

一、jQuery检测浏览器window滚动条到达底部
jQuery获取位置和尺寸相关函数:
$(document).height()    获取整个页面的高度
$(window).height()    获取当前也就是浏览器所能看到的页面的那部分的高度。这个大小在你缩放浏览器窗口大小时会改变,与document是不一样的
scrollTop()    获取匹配元素相对滚动条顶部的偏移。
scrollLeft()    获取匹配元素相对滚动条左侧的偏移。
scroll([[data],fn])    当滚动条发生变化时触犯scroll事件
jQuery检测滚动条到达底部代码:

$(document).ready(function() {
  $(window).scroll(function() {
 
    if ($(document).scrollTop()<=0){
      alert("滚动条已经到达顶部为0");
    }
 
    if ($(document).scrollTop() >= $(document).height() - $(window).height()) {
      alert("滚动条已经到达底部为" + $(document).scrollTop());
    }
  });
});

二、jQuery检测div中滚动条到达底部
上半篇介绍了jQuery检测浏览器window滚动条到达底部,其实还并不理解scrollTop和scrollHeight概念,通常滚动条都是放在div中的。

jQuery检测滚动条是否到达底部

如下检测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">
        来自于3water.com三水点靠木<br>
        来自于3water.com三水点靠木<br>
        来自于3water.com三水点靠木<br>
      </div>
    </div>

首先需要理解几个概念:
scrollHeight:表示滚动条需要滚动的高度,即内部div,10000px
scrollTop: 表示滚动条滚动的高度,可能大于外部div 500px
也就是说scrollDiv的高度+scrollTop滚动的最大高度=scrollHeight
于是检测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("到达底部了");
    }
  });
});
Javascript 相关文章推荐
根据分辩率调用不同的CSS.
Jan 08 Javascript
jquery 图片轮换效果
Jul 29 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
Jan 06 Javascript
jQuery中innerWidth()方法用法实例
Jan 19 Javascript
初步认识JavaScript函数库jQuery
Jun 18 Javascript
jquery.map()方法的使用详解
Jul 09 Javascript
js实现StringBuffer的简单实例
Sep 02 Javascript
js仿小米官网图片轮播特效
Sep 29 Javascript
微信公众号 摇一摇周边功能开发
Dec 08 Javascript
javascript基本数据类型和转换
Mar 17 Javascript
Bootstrap警告框(Alert)插件使用方法
Mar 21 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
Aug 08 Javascript
js实现根据身份证号自动生成出生日期
Dec 15 #Javascript
浅析javascript的return语句
Dec 15 #Javascript
轻松学习Javascript闭包函数
Dec 15 #Javascript
Javascript基于AJAX回调函数传递参数实例分析
Dec 15 #Javascript
javascript实现html页面之间参数传递的四种方法实例分析
Dec 15 #Javascript
js编写贪吃蛇的小游戏
Aug 24 #Javascript
javascript实现网页端解压并查看zip文件
Dec 15 #Javascript
You might like
php 代码优化之经典示例
2011/03/24 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
CodeIgniter扩展核心类实例详解
2016/01/20 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
jquery中获取元素的几种方式小结
2011/07/05 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
2017/10/17 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
python中定义结构体的方法
2013/03/04 Python
python 判断网络连通的实现方法
2018/04/22 Python
python 二维数组90度旋转的方法
2019/01/28 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
python实现websocket的客户端压力测试
2019/06/25 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
职业教育毕业生求职信
2013/11/09 职场文书
4s店总经理岗位职责
2013/12/31 职场文书
《玩具柜台前的孩子》教学反思
2014/02/13 职场文书
新年联欢会主持词
2014/03/27 职场文书
化学专业自荐信
2014/05/28 职场文书
公务员考察材料范文
2014/12/23 职场文书
岗位职责范本大全
2015/02/26 职场文书
信息技术课教学反思
2016/02/23 职场文书
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL