当前位置:首页 > 日记 > 正文

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

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

有些需求中,需要当用户滚动到浏览器底部的时候,再加载新的内容。笔者在这里介绍如何使用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判断网页是否已经滚动到浏览器底部的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

相关文章

WdatePicker.js时间日期插件的使用

WdatePicker.js时间日期插件的使用

插件,时间日期,使用方法,电脑软件,WdatePicker,本文介绍了WdatePicker.js时间插件使用,分享给大家,具体如下:引用: 在项目中引用“plugin-clander”文件夹。 在html中引用”WdatePicker.js”即可。<script src="js/plugin-clander/WdatePicker…

AI如何做出凹陷效果 AI制作文字凹

AI如何做出凹陷效果 AI制作文字凹

凹陷,文字,教程,效果,电脑软件,小薰AI教程:使用AI制作相册。本次教程中,通过制作凹陷效果文字的步骤介绍如何使用AI制作凹陷效果;主要使用到外观中的内发光和变换,灵活变换参数数值可以得到不同的效果,在练习中需要多次尝试得到最理想的结果。赶…

什么是网页登录保护及如何取消网页

什么是网页登录保护及如何取消网页

网页,取消,登录,设置,电脑软件,  每个受保护网页都包含有一个设定好的权限代码,在用户登录成功并赋予相应的访问权限后,检查该用户的权限信息是否包含有该网页的权限代码,如果有则可以访问这个受保护网页,否则重定向到登录失败或权限不够…

JavaScript实现短信倒计时60s

JavaScript实现短信倒计时60s

倒计时,短信,电脑软件,JavaScript,废话不多说了,直接给大家贴代码了,具体代码如下所示;$(function(){ //获取验证码 var getCode = document.getElementById('getCode'); var wait = 60; function time(btn){ if (wait===0) …

wps幻灯片怎么设置自动切换

wps幻灯片怎么设置自动切换

步骤,幻灯片,设置自动,演示,电脑软件,  幻灯片放映过程中通常情况下都是点击鼠标才会切换到下一张幻灯片,这时有个问题就是怎么能够让它自动切换呢?下面是WPS演示幻灯片自动切换的方法,希望看完本教程的朋友都能学会wps并运用起来。WPS演示…

PPT演示文稿怎么实现书本式分栏内

PPT演示文稿怎么实现书本式分栏内

书本,演示文稿,内容,电脑软件,PPT,  一般的情况下,ppt的页面内容是由标题和内容的两个虚线框组成,然后用户在里面输入内容,其实我们还可以为演示文稿换另外的一种主题。以下是小编为您带来的关于PPT演示文稿实现书本式分栏内容,希望对您有所…

浅谈jquery拼接字符串效率比较高的

浅谈jquery拼接字符串效率比较高的

方法,拼接字符串,较高,浅谈,效率,实例如下:var roleidArray = new Array("");for(i = 0; i < rightRows.length; i++) { roleidArray.push(rightRows[i].id);}roleidArray = roleidArray.join(",").substring(1);代码很简单,我就不做注…

Vue中的ref作用详解 | 实现DOM的联

Vue中的ref作用详解 | 实现DOM的联

操作,作用,详解,电脑软件,Vue,其实官网已经讲的很仔细了,只是我个人可能接受能力比较差,并没有立刻明白他的意思。不过使用之后就很明白了。这里主要举个例子来说明:我想要的效果是点击保存的同时,也能点击重置这个按钮,触发reset,ref这个特性就…

JavaScript中立即执行函数实例详解

JavaScript中立即执行函数实例详解

立即执行函数,详解,实例,电脑软件,JavaScript,前言js立即执行函数可以让你的函数在创建后立即执行,js立即执行函数模式是一种语法,可以让你的函数在定义后立即被执行,这种模式本质上就是函数表达式(命名的或者匿名的),在创建后立即执行。( func…

ps怎么编辑选区? ps对选区进行基础

ps怎么编辑选区? ps对选区进行基础

方法,基础操作,选区,编辑,电脑软件,ps中想要对选区进行操作,比如移动和反选选区,选区的编辑与应用,选区的调整,该怎么实现呢?下面我们就来看看详细的教程。软件名称:Adobe photoshop 7.01 官方正式简体中文版软件大小:154MB更新时间:2013-04-191、…

Spring 事务隔离与事务传播的详解

Spring 事务隔离与事务传播的详解

事务隔离,详解,事务,电脑软件,Spring,Spring 事务隔离与事务传播的详解与对比Spring是SSH中的管理员,负责管理其它框架,协调各个部分的工作。今天一起学习一下Spring的事务管理。Spring的事务管理分为声明式跟编程式。声明式就是在Spring的配…

Photoshop打造绚丽的烟花字体

Photoshop打造绚丽的烟花字体

字体,绚丽,烟花,电脑软件,Photoshop,利用Photoshop这款强大的图片编辑软件来打造绚丽的烟花字体,来装点你的生活吧。1、打开Photoshop,新建一个800*800大小的文件。背景填充为黑色。2、创建文字图层,本次以&ldquo;新年快乐&rdquo;为例,字体为&l…