jQuery判断网页是否已经滚动到浏览器底部的实现方法


Posted in jQuery onOctober 27, 2017

有些需求中,需要当用户滚动到浏览器底部的时候,再加载新的内容。笔者在这里介绍如何使用Jquery判断用户是否已经浏览到网页的底部了。

在了解下面的知识点之前,笔者这里先介绍几个概念。

$(window).height(); //用于获取浏览器显示区域的高度

$(window).width(); //用于获取浏览器显示区域的宽度

$(document.body).height(); //获取页面文档的高度

$(document.body).width(); //获取页面文档的宽度

$(document).scrollTop(); //获取垂直滚动条到顶部的垂直距离

$(document).scrollLeft(); //获取水平滚动条到左边的水平距离

通过上面的知识点,可以知道:浏览器显示区域的高度+垂直滚动条距离顶部距离<=网页的高度。

有了这个结论,那么实现起来就容易了。下面的代码实现了,判断用户是否浏览到了网页的底部。

$(window).scroll(function(){
 var h=$(document.body).height();//网页文档的高度
 var c = $(document).scrollTop();//滚动条距离网页顶部的高度
 var wh = $(window).height(); //页面可视化区域高度

 if (Math.ceil(wh+c)>=h){
  alert("我已经到底部啦");
 }
 })

如果需要判断用户是否已经浏览到某个元素的话,那么只需要把上面的网页文档高度,换成某一个元素距离网页顶部的距离就可以了。例如: 

$(window).scroll(function(){
 var h=$("#div").offset().top;//id为div的元素距离网页顶部的距离
 var c = $(document).scrollTop();//滚动条距离网页顶部的高度
 var wh = $(window).height(); //页面可视化区域高度

 if (Math.ceil(wh+c)>=h){
  alert("我已经到底部啦");
 }
 })

在这里读者需要注意,判断条件中,wh+c取得是满足大于等于该数字的最小整数。经过笔者的测试,在IE7、8、9、11上都没有问题。

接下来笔者把上面的代码封装为一个插件。

(function ($) {
  //backcall是回调函数,count表示回调函数被执行的次数,count只有在元素通过滚动条滑出的时候才起作用
 $.fn.inBottom = function (backcall){
 //判断当前元素是否在目前屏幕可视化区域之内
 if(this.offset().top >= $(window).height()){
 this.inScroll(backcall,count);
 }else{
 this.inWindow(backcall);
 }
 };
 //直接加载回调函数
 $.fn.inWindow = function (backcall){
 backcall();
 };
 //滚动监听滑动条,元素滚动到屏幕底部的时候,加载回调函数
 $.fn.inScroll = function (backcall,count) {
  var $this=this;
 $(window).scroll(function(){
 //获得这个元素到文档顶部的距离
 var awayDocTop=$this.offset().top;
 //获得滚动条的top
 var sTop=$(document).scrollTop();
 //获得可视化窗口的高度
 var wh=$(window).height();
  if(Math.ceil(wh+sTop)>=awayDocTop){
  if(count>0){
  backcall();
  count--;
  }
 };
 });
 };
})(jQuery);

然后读者在引入上面的插件文件后,就可以通过类似于下面的代码调用了。

$("#div").inBottom(function(){
 alert("我被回调了");
},1);

总结

以上所述是小编给大家介绍的jQuery判断网页是否已经滚动到浏览器底部的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
jQuery实现手势解锁密码特效
Aug 14 jQuery
简单实现jQuery轮播效果
Aug 18 jQuery
jquery-file-upload 文件上传带进度条效果
Nov 21 jQuery
jQuery中each方法的使用详解
Mar 18 jQuery
jQuery实现的回车触发按钮事件功能示例
Mar 25 jQuery
jQuery实现动态加载select下拉列表项功能示例
May 31 jQuery
详解如何使用webpack打包多页jquery项目
Feb 01 jQuery
jquery登录的异步验证操作示例
May 09 jQuery
基于jQuery实现可编辑的表格
Dec 11 jQuery
jQuery实现手风琴效果(蒙版)
Jan 11 jQuery
jQuery实现计算器功能
Oct 19 jQuery
jquery自定义组件实例详解
Dec 31 jQuery
JavaScript自执行函数和jQuery扩展方法详解
Oct 27 #jQuery
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 #jQuery
使用JQuery实现图片轮播效果的实例(推荐)
Oct 24 #jQuery
jquery select插件异步实时搜索实例代码
Oct 20 #jQuery
利用jQuery实现简单的拖曳效果实例代码
Oct 20 #jQuery
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
Oct 20 #jQuery
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
Oct 19 #jQuery
You might like
文件上传程序的全部源码
2006/10/09 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
js select常用操作控制代码
2010/03/16 Javascript
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
Python实现计算文件夹下.h和.cpp文件的总行数
2015/04/23 Python
Python实现简单的代理服务器
2015/07/25 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
基于python实现操作redis及消息队列
2020/08/27 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
几个解决兼容IE6\7\8不支持html5标签的几个方法
2013/01/07 HTML / CSS
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
毕业生精彩的自我评价分享
2013/10/06 职场文书
幼儿运动会邀请函
2014/01/17 职场文书
《三峡》教学反思
2014/03/01 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
作风转变心得体会
2014/09/02 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
2014年班干部工作总结
2014/11/25 职场文书
关于上班时间调整的通知
2015/04/23 职场文书
保护校园环境倡议书
2015/04/28 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
幼儿教师三分钟演讲稿
2019/06/21 职场文书