js 判断滚动条是否到达底部
2017-04-27 20:18
477 查看
1. 原生Javascript实现
判断滚动条到底部,需要用到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设置滚动事件 window.onscroll = function(){ if(getScrollTop() + getWindowHeight() == getScrollHeight()){ alert("you are in the bottom!"); } };
2. Jquery实现
用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"); } });
3. 附加
如果要判断在某一个元素中的滚动条是否到底部,根据类似的思想,将document.body换成特定的元素即可,获取scrollTop和scrollHeight的方式是一样的,但是获取元素可见高度需要用到offsetHeight属性,直接依葫芦画瓢即可。相关文章推荐
- js判断滚动条是否到达顶部、底部 兼容各种浏览器
- JS如何判断滚动条是否滚到底部
- jquery判断滚动条是否到达窗口顶部和底部
- js判断滚动条是否已到页面最底部或顶部实例-拓展(逐渐-自动下滑滚动)
- 判断滚动条是否到达底部事件
- IE,火狐,谷歌浏览器下js判断滚动条是否已拉到页面最底部
- IE/FF/Chrome下document.documentElement/body的 scrollHeight/scrollTop/clientHeight 以及判断滚动条是否到达页面底部。
- js判断滚动条是否已到页面最底部或顶部实例
- JS如何判断滚动条是否滚到底部
- jquery 判断滚动条到达了底部,怎么判断滚动条是否又到达的顶
- jQuery 的 Div 标签滚动条属性及判断垂直滚动条是否到达底部
- jQuery 的 Div 标签滚动条属性及判断垂直滚动条是否到达底部
- jquery 判断滚动条到达了底部,怎么判断滚动条是否又到达的顶
- jQuery 的 Div 标签滚动条属性及判断垂直滚动条是否到达底部
- jQuery 的 Div 标签滚动条属性及判断垂直滚动条是否到达底部
- jQuery 的 Div 标签滚动条属性及判断垂直滚动条是否到达底部
- jQuery 的 Div 标签滚动条属性及判断垂直滚动条是否到达底部
- JS如何判断滚动条是否滚到底部
- js判断滚动条是否滚到底部
- js判断滚动条是否到底部