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判断网页是否已经滚动到浏览器底部的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

您可能感兴趣的文章:

  • jQuery视差滚动效果网页实现方法经验总结
  • jquery实现网页的页面平滑滚动效果代码
  • jQuery网页右侧广告跟随滚动代码分享
  • Jquery 类网页微信二维码图块滚动效果具体实现
(0)

相关推荐

  • jQuery网页右侧广告跟随滚动代码分享

    两种方法都分享给大家,希望对大家的学习有所启发. 方法一: <script type="text/javascript">// <![CDATA[ $.fn.smartFloat = function() { var position = function(element) { var top = element.position().top, pos = element.css("position"); $(window).scroll(func

  • Jquery 类网页微信二维码图块滚动效果具体实现

    首先是自己定制的脚本方法属性代码: 复制代码 代码如下: /*  * 创建浮动图片广告(Generate a dock AD image)  *  * USAGE:   *  $(selector).higo_plugins_ad({  *      src:null,                    // 广告图片路径  *      closeSrc:null,               // 关闭图片路径  *      href:"#",                

  • jQuery视差滚动效果网页实现方法经验总结

    本文总结分析了jQuery视差滚动效果网页实现方法.分享给大家供大家参考,具体如下: 首先说两个核心函数,当然是基于jQuery的: 1.$(document).scrollTop() ; 该函数主要是返回页面当前顶部距离页面顶部的像素值,是一个非负整数. 2.$(window).scroll(); 该事件是监控页面是否滚动,一旦滚动则触发其回调函数. 由此两个函数,我们得到下面的代码: $(window).scroll(function() { var top = $(document).sc

  • jquery实现网页的页面平滑滚动效果代码

    本文实例讲述了jquery实现网页的页面平滑滚动效果代码.分享给大家供大家参考,具体如下: 这款网页页面平滑滚动jquery代码,点击链接会让网页平滑滚动到链接对应的位置. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-link-scroll-page-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo

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

    有些需求中,需要当用户滚动到浏览器底部的时候,再加载新的内容.笔者在这里介绍如何使用Jquery判断用户是否已经浏览到网页的底部了. 在了解下面的知识点之前,笔者这里先介绍几个概念. $(window).height(); //用于获取浏览器显示区域的高度 $(window).width(); //用于获取浏览器显示区域的宽度 $(document.body).height(); //获取页面文档的高度 $(document.body).width(); //获取页面文档的宽度 $(docume

  • jquery判断checkbox是否选中及改变checkbox状态的实现方法

    jquery判断checked的三种方法: .attr('checked):   //看版本1.6+返回:"checked"或"undefined" ;1.5-返回:true或false .prop('checked'): //16+:true/false .is(':checked'):    //所有版本:true/false//别忘记冒号哦 jquery赋值checked的几种写法: 所有的jquery版本都可以这样赋值: // $("#cb1&qu

  • JS与jQuery判断文本框还剩多少字符可以输入的方法

    本文实例讲述了JS与jQuery判断文本框还剩多少字符可以输入的方法.分享给大家供大家参考,具体如下: javascript部分: function $(id) { return document.getElementById(id); } var maxLen=255; function checkMaxInput(){ if($("summary").value.length>maxLen){ $("summary").value=$("summ

  • Android中判断listview是否滑动到顶部和底部的实现方法

    今天实现listview的下拉刷新和上拉加载的时候,遇到了一个问题,*就是说需要根据listview中滑动的位置来进行下拉刷新和上拉加载.* 具体点,只有当我的listview滑动到最顶部的时候,这时候下拉才执行刷新操作:只有当我的listview滑动到最底部的时候,这时候上拉才执行加载操作. 那么怎么判断listview的滑动位置呢?其实还是比较好解决的,说一下我的想法: 顶部的判断,根据listview中的第一个item距离listview顶部的距离是否为0. 底部的判断,根据listvie

  • jQuery创建平滑的页面滚动(顶部或底部)

    在这篇文章中,我将通过本教程向您展示了如何创建一个平滑的滚动效果,使用jQuery.让您可以滚动到你的网页的顶部或底部 它是如何工作的 首先,加载jquery库在</ head>标签结束前: 复制代码 代码如下: <script type="text/javascript" src="http://demo.jb51.net/jslib/jquery/jquery1.3.2.js"></script>jQuery滚动到底部: 链接

  • jQuery判断div随滚动条滚动到一定位置后停止

    实现代码: 复制代码 代码如下: <script type="text/javascript">var rollSet = $('#widget');    var offset = rollSet.offset();    var fwidth = $("#footer").height();    $(window).scroll(function() {        var scrollTop = $(window).scrollTop();  

  • JQuery判断radio单选框是否选中并获取值的方法

    一.设置选中方法 代码如下: $("input[name='名字']").get(0).checked=true; $("input[name='名字']").attr('checked','true'); $("input[name='名字']:eq(0)").attr("checked",'checked'); $("input[name='radio_name'][checked]").val();

  • 使用jQuery判断浏览器滚动条位置的方法

    项目背景 webtouch(webapp)页面,防苹果手机safari浏览器,网上滑动,底部导航消失,滑动到底部又出现.向下滑动,底部导航出现. 遇到问题 1.我一开始用swipeup和swipedown来做,发现因为有滚动条,不会触发.因此只能判断滚动条是上滚下滚等.关于手机手势,后面的文章会介绍,欢迎关注! 2.通过上滚下滚来让底部导航显示或者因此,安卓上面的浏览器都可以,但是苹果safari会一闪一闪,原因是苹果safari自动有个弹跳效果,导致事件重复执行,解决办法是给上滚下滚一个距离,

  • jQuery实现判断滚动条滚动到document底部的方法分析

    本文实例讲述了jQuery实现判断滚动条滚动到document底部的方法.分享给大家供大家参考,具体如下: 滚动条没有实际的高度.只是为了呈现效果才在外型上面有长度. 在js当中也没有提供滚动条的高度API. 参考了网上有关资料:判断滚动条到底部的基本逻辑是滚动条滚动的高度加上视口的高度,正好是document的高度,公式表示为 滚动条滚动的高度+浏览器视口的高度>=document的高度. 参考网上资料,具体代码如下: //滚动条在Y轴上的滚动距离 function getScrollTop(

随机推荐