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.load()和Jsp的include的区别
Apr 12 jQuery
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
基于jQuery和CSS3实现APPLE TV海报视差效果
Jun 16 jQuery
jquery根据name取得select选中的值实例(超简单)
Jan 25 jQuery
通过jquery.cookie.js实现记住用户名、密码登录功能
Jun 20 jQuery
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 jQuery
jQuery中ajax请求后台返回json数据并渲染HTML的方法
Aug 08 jQuery
jQuery扩展方法实现Form表单与Json互相转换的实例代码
Sep 05 jQuery
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
jquery+php后台实现省市区联动功能示例
May 23 jQuery
jquery.pager.js分页实现详解
Jul 29 jQuery
基于jQuery实现可编辑的表格
Dec 11 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 接口类与抽象类的实际作用
2009/11/26 PHP
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
8个PHP数组面试题
2015/06/23 PHP
php查询及多条件查询
2017/02/26 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
让mayfish支持mysqli数据库驱动的实现方法
2010/05/22 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
微信小程序实现分享到朋友圈功能
2018/07/19 Javascript
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
[00:34]DOTA2上海特级锦标赛 VG战队宣传片
2016/03/04 DOTA
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
2015/04/09 Python
Python 实现文件打包、上传与校验的方法
2019/02/13 Python
python实现证件照换底功能
2019/08/20 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
friso美素佳儿官方海外旗舰店:荷兰原产原罐
2017/07/03 全球购物
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
幼儿师范毕业生自荐信
2013/11/09 职场文书
车间班组长的职责
2013/12/13 职场文书
小溪流的歌教学反思
2014/02/13 职场文书
党员承诺书范文
2014/05/19 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
导游词之江南周庄
2019/12/06 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android