jQuery实现判断滚动条到底部


Posted in Javascript onJune 23, 2015

判断滚动条到底部,需要用到DOM的三个属性值,即scrollTop、clientHeight、scrollHeight。

scrollTop为滚动条在Y轴上的滚动距离。

clientHeight为内容可视区域的高度。

scrollHeight为内容可视区域的高度加上溢出(滚动)的距离。

从这个三个属性的介绍就可以看出来,滚动条到底部的条件即为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>

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
js动态添加onload、onresize、onscroll事件(另类方法)
Dec 26 Javascript
PHP实现的各种中文编码转换类分享
Jan 23 Javascript
AngularJS基础教程之简单介绍
Sep 27 Javascript
基于JavaScript获取鼠标位置的各种方法
Dec 16 Javascript
基于JavaScript如何制作遮罩层对话框
Jan 26 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
Mar 17 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
Sep 12 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
Sep 13 Javascript
详解vuex之store源码简单解析
Jun 13 Javascript
AngularJS动态生成select下拉框的方法实例
Nov 17 Javascript
Javascript中的this,bind和that使用实例
Dec 05 Javascript
js实现select下拉框选择
Jan 11 Javascript
jQuery实现新消息在网页标题闪烁提示
Jun 23 #Javascript
使用Raygun对Node.js应用进行错误处理的方法
Jun 23 #Javascript
javascript创建函数的20种方式汇总
Jun 23 #Javascript
使用Node.js实现HTTP 206内容分片的教程
Jun 23 #Javascript
jquery.gridrotator实现响应式图片展示画廊效果
Jun 23 #Javascript
使用JavaScript实现旋转的彩圈特效
Jun 23 #Javascript
在Node.js中使用HTTP上传文件的方法
Jun 23 #Javascript
You might like
NT IIS下用ODBC连接数据库
2006/10/09 PHP
《APMServ 5.1.2》使用图解
2006/10/23 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
php使用socket post数据到其它web服务器的方法
2015/06/02 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
js操作select控件的几种方法
2010/06/02 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
2016/11/10 Javascript
JQuery实现定时刷新功能代码
2017/05/09 jQuery
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
Python生成器generator用法示例
2018/08/10 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
numpy.ndarray 实现对特定行或列取值
2019/12/05 Python
详解python中的闭包
2020/09/07 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
寄语十八大感言
2014/02/07 职场文书
小学教师国培感言
2014/02/08 职场文书
创建文明城市标语
2014/06/16 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
综合实践活动报告
2015/02/05 职场文书
卫生院艾滋病宣传活动总结
2015/05/09 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL