• jQuery+Ajax滚屏异步加载数据实现(附源码)


    一、CSS样式

    1         body { font:12px/1.0em Microsoft Yahei; line-height:1.6em; background:#fff; line-height:1.2em; padding:0 10px; }
    2         html,body,div { margin:0;}
    3         
    4         .container { height:900px;}
    5         .load-btn { display:block; text-align:center; padding:5px 10px; border:1px #eee solid; background:#f5f5f5;}
    View Code

    二、HTML代码

    1 <div class="container"></div>
    2 <a href="javascript:void(0)" class="load-btn load-more">查看更多</a>
    3 <input type="hidden" name="PageIndex" value="1" />
    View Code

    三、Javascript代码

     1 <script type="text/javascript">
     2     $(function () {
     3         var $page = $("input[name='PageIndex']"); //页索引
     4 
     5         //初始化
     6         Data.init(10);
     7 
     8         //滚动加载
     9         $(window).scroll(function () {
    10             Data.scroll($page.val(), 10);
    11         });
    12 
    13         //手动加载
    14         $(".load-more").bind("click", function () {
    15             Data.load($page.val(), 10);
    16         });
    17     })
    18 
    19     var Data = {
    20         init: function (rows) {//初始化,载入第一页数据
    21             Data.load(1, rows);
    22         },
    23         setPage: function () {//数据载入成功,设置下一页索引
    24             var $page = $("input[name='PageIndex']");
    25             var index = parseInt($page.val()) + 1;
    26             $page.val(index);
    27         },
    28         scroll: function (page, rows) {//滚动到底部加载数据
    29             var top = $(window).scrollTop();
    30             var win = $(window).height();
    31             var doc = $(document).height();
    32             if ((top + win) >= doc) {
    33                 Data.load(page, rows);
    34             }
    35         },
    36         load: function (page, rows) {//载入数据方法
    37             var $msg = $('.load-btn');
    38             $msg.removeClass('load-more').text('正在载入数据...');
    39             $.post("ajax.php?page=" + page + "&rows=" + rows + "&t=" + (new Date().getTime()), function (data) {
    40                 data = $.parseJSON(data);
    41                 if (data != null || data.length > 0) {
    42                     Data.append(data);
    43                     Data.setPage();
    44                     $msg.addClass('load-more').text('查看更多');
    45                     return true;
    46                 }
    47                 $msg.removeClass('load-more').text('已加载全部数据!');
    48                 return false;
    49             });
    50             $msg.removeClass('load-more').text('数据加载失败!');
    51             window.setTimeout(function () {
    52                 $msg.addClass('load-more').text('查看更多');
    53             }, 2000);
    54             return false;
    55         },
    56         append: function (json) {//构造html,并填充
    57             var $container = $('.container');
    58             $.each(json, function (i) {
    59                 html += "<div class="item"><a href="item.php?id=" + json[i].id + "" title=" + json[i].title + ">" + json[i].title + "</a></div>";
    60             });
    61             $container.append(html);
    62         }
    63     }
    64 </script>

     下载地址:https://files.cnblogs.com/wyguo/jquery_ajax_scroll_to_load_data.zip

    作者:Wuyeguo

    声明:欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    待思考问题---数据库的分层模型
    iOS的常用类库
    java spring是元编程框架---使用的机制是注解+配置
    Java Virtual Machine (JVM), Difference JDK, JRE & JVM – Core Java
    Spring注解的使用和组件扫描
    Spring Boot实战:拦截器与过滤器
    问题、存在与认知---问题产生的原因是对存在的不完全或错误认知
    元编程的分层模型
    元编程的本质---高级语言的表达通过解释生成低级语言的表达(代码)
    aop分层模型——aop是元编程的一种
  • 原文地址:https://www.cnblogs.com/wyguo/p/3635883.html
Copyright © 2020-2023  润新知