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 相关文章推荐
获取dom元素那些讨厌的位置封装代码
Jun 23 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
Apr 18 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
Dec 13 Javascript
jquery控制display属性为none或block
Mar 31 Javascript
javascript禁止访客复制网页内容的实现代码
Aug 05 Javascript
使用AJAX实现Web页面进度条的实例分享
May 06 Javascript
微信小程序实现折叠与展开文章功能
Jun 12 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
Jul 05 jQuery
小程序扫描普通链接二维码跳转小程序指定界面方法
May 07 Javascript
Vue3.x源码调试的实现方法
Oct 13 Javascript
Angular处理未可知异常错误的方法详解
Jan 17 Javascript
Echarts如何重新渲染实例详解
May 30 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 float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
图片轮换效果实现代码(点击按钮停止执行)
2013/04/12 Javascript
JavaScript避免代码的重复执行经验技巧分享
2014/04/17 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
JavaScript计算器网页版实现代码分享
2016/07/15 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
JavaScript中闭包的详解
2017/04/01 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
2019/07/29 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
利用python将图片转换成excel文档格式
2017/12/30 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
pandas DataFrame 交集并集补集的实现
2019/06/24 Python
django实现支付宝支付实例讲解
2019/10/17 Python
python tkinter canvas使用实例
2019/11/04 Python
Python运行DLL文件的方法
2020/01/17 Python
python re.match()用法相关示例
2021/01/27 Python
Web前端绘制0.5像素的几种方法
2017/08/11 HTML / CSS
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
房地产营销策划方案
2014/02/08 职场文书
军训考核自我鉴定
2014/02/13 职场文书
中西医专业毕业生职业规划书
2014/02/24 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
空乘英文求职信
2014/04/13 职场文书
法学专业毕业生自荐信
2014/06/11 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
出纳工作检讨书范文
2014/12/27 职场文书
小学运动会入场词
2015/07/18 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL