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 相关文章推荐
JavaScript CSS修改学习第一章 查找位置
Feb 19 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
Jun 24 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
Sep 06 Javascript
jquery.ui.draggable中文文档(原文翻译)
Nov 15 Javascript
json中换行符的处理方法示例介绍
Jun 10 Javascript
js实现刷新iframe的方法汇总
Apr 27 Javascript
学习JavaScript设计模式(链式调用)
Nov 26 Javascript
jQuery使用$.ajax进行即时验证的方法
Dec 08 Javascript
JavaScript实现经典排序算法之插入排序
Dec 28 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
Mar 27 Javascript
JavaScript使用ul中li标签实现删除效果
Apr 15 Javascript
ECharts transform数据转换和dataZoom在项目中使用
Dec 24 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实现微信发红包程序
2015/08/24 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
php使用正则验证中文
2016/04/06 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
JQuery 学习笔记 选择器之三
2009/07/23 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
jquery可见性过滤选择器使用示例
2013/06/24 Javascript
javascript事件冒泡详解和捕获、阻止方法
2014/04/12 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
2015/11/16 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
Angular整合zTree的示例代码
2018/01/24 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
2018/07/06 Javascript
小程序实现新用户判断并跳转激活的方法
2019/05/20 Javascript
angular使用md5,CryptoJS des加密的方法
2019/06/03 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
vue使用swiper实现左右滑动切换图片
2020/10/16 Javascript
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
python实现从web抓取文档的方法
2014/09/26 Python
Python编写百度贴吧的简单爬虫
2015/04/02 Python
Python使用爬虫猜密码
2016/02/19 Python
简单谈谈python中的多进程
2016/11/06 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
自我评价怎么写好呢?
2013/12/05 职场文书
最新的互联网创业计划书
2014/01/10 职场文书
英文导游欢迎词
2014/01/11 职场文书
群众路线剖析材料
2014/09/30 职场文书
中考学习决心书
2015/02/04 职场文书