jQuery实现的自动加载页面功能示例


Posted in Javascript onSeptember 04, 2016

本文实例讲述了jQuery实现的自动加载页面功能。分享给大家供大家参考,具体如下:

demo.html:

<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>---------------</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>+++++++++++++++</p></li>

scrollpagination.js:

(function( $ ){
 $.fn.scrollPagination = function(options) {
    var opts = $.extend($.fn.scrollPagination.defaults, options);
    var target = opts.scrollTarget;
    if (target == null){
      target = obj;
    }
    opts.scrollTarget = target;
    return this.each(function() {
     $.fn.scrollPagination.init($(this), opts);
    });
 };
 $.fn.stopScrollPagination = function(){
   return this.each(function() {
    $(this).attr('scrollPagination', 'disabled');
   });
 };
 $.fn.scrollPagination.loadContent = function(obj, opts){
   var target = opts.scrollTarget;
   var mayLoadContent = $(target).scrollTop()+opts.heightOffset >= $(document).height() - $(target).height();
   if (mayLoadContent){
     if (opts.beforeLoad != null){
      opts.beforeLoad();
     }
     $(obj).children().attr('rel', 'loaded');
     $.ajax({
       type: 'POST',
       url: opts.contentPage,
       data: opts.contentData,
       success: function(data){
        $(obj).append(data);
        var objectsRendered = $(obj).children('[rel!=loaded]');
        if (opts.afterLoad != null){
          opts.afterLoad(objectsRendered);
        }
       },
       dataType: 'html'
     });
   }
 };
 $.fn.scrollPagination.init = function(obj, opts){
   var target = opts.scrollTarget;
   $(obj).attr('scrollPagination', 'enabled');
   $(target).scroll(function(event){
    if ($(obj).attr('scrollPagination') == 'enabled'){
      $.fn.scrollPagination.loadContent(obj, opts);
    }
    else {
      event.stopPropagation();
    }
   });
   $.fn.scrollPagination.loadContent(obj, opts);
 };
 $.fn.scrollPagination.defaults = {
     'contentPage' : null,
     'contentData' : {},
     'beforeLoad': null,
     'afterLoad': null ,
     'scrollTarget': null,
     'heightOffset': 0
 };
})( jQuery );

index.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript" src="js/jquery-1.10.1.min.js"></script>
<script type="text/javascript" src="js/scrollpagination.js"></script>
<script type="text/javascript">
$(function(){
  $('#content').scrollPagination({
    'contentPage': 'demo.html', //你要搜索结果的页面
    'contentData': {},//你可以通过 children().size() 知道哪里是分页
    //谁该怎么滚动?在这个例子中,完整的窗口
    'scrollTarget': $(window),
    //在页面到达结束之前,从多少像素开始加载?
    'heightOffset': 10,
    //前负荷,一些功能,可能显示一个加载DIV
    'beforeLoad': function(){
      $('#loading').fadeIn();
    },
    'afterLoad': function(elementsLoaded){
      //加载后,一些功能的动画结果和隐藏预载的div
      $('#loading').fadeOut();
      var i = 0;
      $(elementsLoaded).fadeInWithDelay();
      //如果超过100结果加载停止分页(仅用于测试)
      if ($('#content').children().size() > 100){
        $('#nomoreresults').fadeIn();
        $('#content').stopScrollPagination();
      }
    }
  });
  //元件中的延迟元件的褪色代码
  $.fn.fadeInWithDelay = function(){
    var delay = 0;
    return this.each(function(){
      $(this).delay(delay).animate({opacity:1}, 200);
      delay += 100;
    });
  };
});
</script>
</head>
<body>
<div id="demo">
  <div style="height:2000px;"></div>
  <ul id="content" style=" margin:0 auto; width:800px; color:#f60; background-color:eee;">
    <li><p>内容开始</p></li>
  </ul>
  <div class="loading" id="loading">加载中</div>
  <div class="loading" id="nomoreresults">结束了</div>
</div>
</body>
</html>

效果图如下:

jQuery实现的自动加载页面功能示例

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
brook javascript框架介绍
Oct 10 Javascript
jquery getScript动态加载JS方法改进详解
Nov 15 Javascript
node.js中的fs.futimesSync方法使用说明
Dec 17 Javascript
用javascript实现自动输出网页文本
Jul 30 Javascript
Nginx上传文件全部缓存解决方案
Aug 17 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
Jan 06 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
Aug 24 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
Aug 27 Javascript
无法获取隐藏元素宽度和高度的解决方案
Mar 07 Javascript
vue-router相关基础知识及工作原理
Mar 16 Javascript
vue-router中scrollBehavior的巧妙用法
Jul 09 Javascript
简单了解three.js 着色器材质
Aug 03 Javascript
jQuery简单实现中间浮窗效果
Sep 04 #Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
Sep 04 #Javascript
jQuery中ScrollTo用法示例
Sep 04 #Javascript
jQuery与JS加载事件用法分析
Sep 04 #Javascript
jQuery轮播图效果精简版完整示例
Sep 04 #Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
Sep 04 #Javascript
jQuery实现的自定义弹出层效果实例详解
Sep 04 #Javascript
You might like
php中几种常见安全设置详解
2010/04/06 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
动态改变textbox的宽高的js
2006/10/26 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
JS实现方向键切换输入框焦点的方法
2015/08/19 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
vue实现打印功能的两种方法
2018/09/07 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
单页面vue引入百度统计的使用方法示例详解
2018/10/13 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python读取html中指定元素生成excle文件示例
2014/04/03 Python
详解python的数字类型变量与其方法
2016/11/20 Python
Python探索之URL Dispatcher实例详解
2017/10/28 Python
Python unittest单元测试框架总结
2018/09/08 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
整理HTML5的一些新特性与Canvas的常用属性
2016/01/29 HTML / CSS
新闻记者个人求职的自我评价
2013/11/28 职场文书
护士实习鉴定范文
2013/12/22 职场文书
行政主管职责范本
2014/03/07 职场文书
医学生就业推荐表自我鉴定
2014/03/26 职场文书
企业负责人任命书
2014/06/05 职场文书
校外活动方案
2014/08/28 职场文书
用Python将库打包发布到pypi
2021/04/13 Python
如何用threejs实现实时多边形折射
2021/05/07 Javascript
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python