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+pjax简单示例汇总
Apr 21 jQuery
jQuery实现radio第一次点击选中第二次点击取消功能
May 15 jQuery
jQuery操作DOM_动力节点Java学院整理
Jul 04 jQuery
jQuery实现QQ空间汉字转拼音功能示例
Jul 10 jQuery
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 jQuery
使用jquery的jsonp如何发起跨域请求及其原理详解
Aug 17 jQuery
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 jQuery
jquery应用实例分享_实现手风琴特效
Feb 01 jQuery
jQuery替换节点元素的操作方法
Mar 18 jQuery
jQuery中可见性过滤器简单用法示例
Mar 31 jQuery
如何用input标签和jquery实现多图片的上传和回显功能
May 16 jQuery
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
Jan 09 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
MySQL授权问题总结
2007/05/06 PHP
解析php中session的实现原理以及大网站应用应注意的问题
2013/06/17 PHP
33道php常见面试题及答案
2015/07/06 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
JS按回车键实现登录的方法
2014/08/25 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
2016/10/10 Javascript
js 转义字符及URI编码详解
2017/02/28 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
Python补齐字符串长度的实例
2018/11/15 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
Python基于内置库pytesseract实现图片验证码识别功能
2020/02/24 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
一些Solaris面试题
2013/03/22 面试题
应聘自荐信
2013/12/14 职场文书
秦兵马俑教学反思
2014/02/07 职场文书
益达广告词
2014/03/14 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
升国旗演讲稿
2014/09/05 职场文书
教育见习报告范文
2014/11/03 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
北京英文导游词
2015/02/12 职场文书