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 相关文章推荐
javascript引用对象的方法
Jan 11 Javascript
jquery 实现两级导航菜单附效果图
Mar 07 Javascript
indexOf 和 lastIndexOf 使用示例介绍
Sep 02 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
Mar 20 Javascript
JavaScript缓冲运动实现方法(2则示例)
Jan 08 Javascript
jquery基本选择器匹配多个元素的实现方法
Sep 05 Javascript
重新理解JavaScript的六种继承方式
Mar 24 Javascript
javascript实现动态显示颜色块的报表效果
Apr 10 Javascript
jQuery自定义元素右键点击事件(实现案例)
Apr 28 jQuery
通过button将form表单的数据提交到action层的实例
Sep 08 Javascript
vue的常用组件操作方法应用分析
Apr 13 Javascript
vue实现短信验证码输入框
Apr 17 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
php小偷相关截取函数备忘
2010/11/28 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
仿新浪微博返回顶部的jquery实现代码
2012/10/01 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
three.js中文文档学习之创建场景
2017/11/20 Javascript
微信小程序实现运动步数排行功能(可删除)
2018/07/05 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
VUE安装使用教程详解
2019/06/03 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
Python排序算法实例代码
2017/08/10 Python
python入门前的第一课 python怎样入门
2018/03/06 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
解决python 3 urllib 没有 urlencode 属性的问题
2019/08/22 Python
通过实例学习Python Excel操作
2020/01/06 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
环境科学专业大学生自荐信格式
2013/09/21 职场文书
简短证婚人证婚词
2014/01/09 职场文书
应聘销售主管的求职信
2014/04/26 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
谢师宴家长致辞
2015/07/27 职场文书
新人入职感言
2015/07/31 职场文书
导游词之太湖
2019/10/08 职场文书