jQuery实现判断滚动条滚动到document底部的方法分析


Posted in jQuery onAugust 27, 2019

本文实例讲述了jQuery实现判断滚动条滚动到document底部的方法。分享给大家供大家参考,具体如下:

滚动条没有实际的高度。只是为了呈现效果才在外型上面有长度。

在js当中也没有提供滚动条的高度API。

参考了网上有关资料:判断滚动条到底部的基本逻辑是滚动条滚动的高度加上视口的高度,正好是document的高度,公式表示为

滚动条滚动的高度+浏览器视口的高度>=document的高度。

参考网上资料,具体代码如下:

//滚动条在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;
    windowHeight = document.documentElement.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");
  }
});

代码测试有效果。

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery Plupload上传插件的使用
Apr 19 jQuery
jQuery设置图片等比例缩小的方法
Apr 29 jQuery
jQuery手风琴的简单制作
May 12 jQuery
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
jquery select插件异步实时搜索实例代码
Oct 20 jQuery
jQuery Datatables表头不对齐的解决办法
Nov 27 jQuery
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
Jan 18 jQuery
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
jquery分页插件pagination使用教程
Oct 23 jQuery
jQuery实现表格的增、删、改操作示例
Jan 27 jQuery
jQuery实现form表单基于ajax无刷新提交方法实例代码
Nov 04 jQuery
jquery自定义组件实例详解
Dec 31 jQuery
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
Aug 27 #jQuery
Jquery实现获取子元素的方法分析
Aug 24 #jQuery
jquery分页优化操作实例分析
Aug 23 #jQuery
jquery实现的分页显示功能示例
Aug 23 #jQuery
jQuery表单选择器用法详解
Aug 22 #jQuery
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 #jQuery
jquery树形插件zTree高级使用详解
Aug 16 #jQuery
You might like
PHP 程序员应该使用的10个组件
2009/10/31 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
2018/02/05 Javascript
JS实现DOM删除节点操作示例
2018/04/04 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
Vue使用Proxy监听所有接口状态的方法实现
2019/06/07 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
ES6中的Javascript解构的实现
2020/10/30 Javascript
vue 解决provide和inject响应的问题
2020/11/12 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
python config文件的读写操作示例
2019/09/27 Python
python实例化对象的具体方法
2020/06/17 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
马云的职业生涯规划之路
2014/01/01 职场文书
库房管理员岗位职责
2014/03/09 职场文书
经销商年会策划方案
2014/05/29 职场文书
质量月口号
2014/06/20 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
督导岗位职责范本
2015/04/10 职场文书
银行催款通知书
2015/04/17 职场文书
Python面向对象之内置函数相关知识总结
2021/06/24 Python
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记