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 相关文章推荐
简单谈谈require模块化jquery和angular的问题
Jun 23 jQuery
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
Django中使用jquery的ajax进行数据交互的实例代码
Oct 15 jQuery
bootstrap+jquery项目引入文件报错的解决方法
Jan 22 jQuery
jQuery 实现倒计时天,时,分,秒功能
Jul 31 jQuery
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 jQuery
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
jQuery zTree插件使用简单教程
Aug 16 jQuery
jquery制作的移动端购物车效果完整示例
Feb 24 jQuery
JQuery表单元素取值赋值方法总结
May 12 jQuery
jQuery实现移动端笔触canvas电子签名
May 21 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
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
destoon官方标签大全
2014/06/20 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
Vue中render方法的使用详解
2018/01/26 Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
2018/07/05 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
详解如何为你的angular app构建一个第三方库
2018/12/07 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
jquery实现加载更多"转圈圈"效果(示例代码)
2020/11/09 jQuery
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
python装饰器使用方法实例
2013/11/21 Python
Python实现字典的key和values的交换
2015/08/04 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
pybind11在Windows下的使用教程
2019/07/04 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
奇怪的鱼:Weird Fish
2018/03/18 全球购物
欧克利英国官网:Oakley英国
2019/08/24 全球购物
北京华建集团SQL面试题
2014/06/03 面试题
国际贸易专业推荐信
2013/11/15 职场文书
个人应聘自我评价分享
2013/11/18 职场文书
法律专业应届生自荐信范文
2014/01/06 职场文书
会走路的树教学反思
2014/02/20 职场文书
消防安全员岗位职责
2014/03/10 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
教育实习指导教师评语
2014/12/31 职场文书
小组组名及励志口号
2015/12/24 职场文书
Python源码解析之List
2021/05/21 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python
用Python生成会跳舞的美女
2022/01/18 Python
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python