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>

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

 

转载于:https://www.cnblogs.com/wyguo/p/3635883.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值