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 ajax请求struts action实现异步刷新
Apr 19 jQuery
jquery 键盘事件的使用方法详解
Sep 13 jQuery
jquery鼠标悬停导航下划线滑出效果
Sep 29 jQuery
jquery ajax异步提交表单数据的方法
Oct 27 jQuery
jquery实现侧边栏左右伸缩效果的示例
Dec 19 jQuery
jQuery实现的页面弹幕效果【测试可用】
Aug 17 jQuery
jQuery实现的简单歌词滚动功能示例
Jan 07 jQuery
jquery无缝图片轮播组件封装
Nov 25 jQuery
jQuery操作元素追加内容示例
Jan 10 jQuery
jquery实现点击弹出对话框
Feb 08 jQuery
jQuery AJAX应用实例总结
May 19 jQuery
如何解决jQuery 和其他JS库的冲突
Jun 22 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中,文件上传
2006/12/06 PHP
用php+javascript实现二级级联菜单的制作
2008/05/06 PHP
php xml文件操作代码(一)
2009/03/20 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
用JS提交参数创建form表单在FireFox中遇到的问题
2013/01/16 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
轻松理解JavaScript闭包
2017/03/14 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
2017/10/25 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
python能做哪方面的工作
2020/06/15 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
复古风格的女装和装饰品:ModCloth
2017/12/29 全球购物
生产车间实习自我鉴定
2013/09/23 职场文书
医生进修自我鉴定
2014/01/19 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
中学生演讲稿
2014/04/26 职场文书
安全负责人任命书
2014/06/06 职场文书
2015大学生实训报告
2014/11/05 职场文书
社会实践活动总结
2015/02/05 职场文书
教师节倡议书2015
2015/04/27 职场文书
结婚典礼主持词
2015/06/29 职场文书
幼儿园教师管理制度
2015/08/05 职场文书