判断滚动条到底部的JS代码


Posted in Javascript onNovember 04, 2013

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

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

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

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

从这个三个属性的介绍就可以看出来,滚动条到底部的条件即为scrollTop + clientHeight == scrollHeight。

废话不多少说,赶紧上代码(兼容不同的浏览器)。

 

//滚动条在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!");

}
};

如果用jquery来实现的话就更简单了,
$(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");

}
});

如果要判断在某一个元素中的滚动条是否到底部,根据类似的思想,将document.body换成特定的元素即可,获取scrollTop和scrollHeight的方式是一样的,但是获取元素可见高度需要用到offsetHeight属性,直接依葫芦画瓢即可。
Javascript 相关文章推荐
漂亮的提示信息(带箭头)
Mar 21 Javascript
javascript编码的几个方法详细介绍
Jan 06 Javascript
js获取GridView中行数据的两种方法 分享
Jul 13 Javascript
js实现倒计时(距离结束还有)示例代码
Jul 24 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
May 26 Javascript
JavaScript探测CSS动画是否已经完成的方法
Aug 30 Javascript
javascript 正则表达式去空行方法
Jan 24 Javascript
js实现常见的工具条效果
Mar 02 Javascript
Angular2 组件通信的实例代码
Jun 23 Javascript
React如何将组件渲染到指定DOM节点详解
Sep 08 Javascript
初学者AngularJS的环境搭建过程
Oct 27 Javascript
使用异步组件优化Vue应用程序的性能
Apr 28 Javascript
js控制不同的时间段显示不同的css样式的实例代码
Nov 04 #Javascript
js实现瀑布流的一种简单方法实例分享
Nov 04 #Javascript
jquery监听div内容的变化具体实现思路
Nov 04 #Javascript
让新消息在网页标题闪烁提示的jQuery代码
Nov 04 #Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
Nov 04 #Javascript
浅析return false的正确使用
Nov 04 #Javascript
javascript与jquery中跳出循环的区别总结
Nov 04 #Javascript
You might like
php自定义函数截取汉字长度
2014/05/15 PHP
php简单统计在线人数的方法
2016/05/10 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
2020/08/24 PHP
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
JS时间选择器 兼容IE6,7,8,9
2012/06/26 Javascript
zTree插件之多选下拉菜单实例代码
2013/11/06 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
什么是 AngularJS?AngularJS简介
2014/12/06 Javascript
node.js中的fs.closeSync方法使用说明
2014/12/17 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
Python将列表数据写入文件(txt, csv,excel)
2019/04/03 Python
python高斯分布概率密度函数的使用详解
2019/07/10 Python
python实现小世界网络生成
2019/11/21 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
国际贸易个人求职信范文
2014/01/04 职场文书
在校生自我鉴定
2014/01/23 职场文书
《寓言两则》教学反思
2014/02/27 职场文书
《观舞记》教学反思
2014/04/16 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
2014预备党员党课学习心得范文
2014/07/08 职场文书
幼儿园开学通知
2015/04/24 职场文书
民事二审代理词
2015/05/25 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书
分析并发编程之LongAdder原理
2021/06/29 Java/Android
正则表达式拆分url实例代码
2022/02/24 Java/Android
Javascript webpack动态import
2022/04/19 Javascript