• 上拉加载实现


    对于上拉加载,本人也是最近开始详细研究,刚开始是在mui上边直接用的框架实现的,具体方法很简单。下面给出代码片段

    HTML代码:

     1 <!--下拉刷新容器-->
     2         <link rel="stylesheet" type="text/css" href="css/cell.css" />
     3         <div id="pullrefresh" class="mui-content mui-scroll-wrapper">
     4             <div class="mui-scroll">
     5                 <!--数据列表-->
     6                 <ul class="mui-table-view mui-table-view-chevron">
     7                     <li class="commodity">
     8                         <div class="commodity_item">
     9                             <img class="commodity_item_showImage" src="img/timg (1).jpg" alt="苹果手机">
    10                             <div class="commodity_item_msg">
    11                                 <p>苹果6S 168G三网通</p>
    12                                 <p>商品介绍商品介绍商品介绍商品介绍商品介绍</p>
    13                                 <p id="pricing"><span>¥:</span><span>7800</span>
    14                                     <a href="" id="go_shopping">立即抢购</a>
    15                                 </p>
    16                             </div>
    17                         </div>
    18                     </li>
    19                     <li class="commodity" style="margin-left: -3px;">
    20                         <div class="commodity_item">
    21                             <img class="commodity_item_showImage" src="img/timg (1).jpg" alt="苹果手机">
    22                             <div class="commodity_item_msg">
    23                                 <p>苹果6S 168G三网通</p>
    24                                 <p>商品介绍商品介绍商品介绍商品介绍商品介绍</p>
    25                                 <p id="pricing"><span>¥:</span><span>7800</span>
    26                                     <a href="" id="go_shopping">立即抢购</a>
    27                                 </p>
    28                             </div>
    29                         </div>
    30                     </li>
    31                     <li class="commodity" >
    32                         <div class="commodity_item">
    33                             <img class="commodity_item_showImage" src="img/timg (1).jpg" alt="苹果手机">
    34                             <div class="commodity_item_msg">
    35                                 <p>苹果6S 168G三网通</p>
    36                                 <p>商品介绍商品介绍商品介绍商品介绍商品介绍</p>
    37                                 <p id="pricing"><span>¥:</span><span>7800</span>
    38                                     <a href="" id="go_shopping">立即抢购</a>
    39                                 </p>
    40                             </div>
    41                         </div>
    42                     </li>
    43                     <li class="commodity" style="margin-left: -3px;">
    44                         <div class="commodity_item">
    45                             <img class="commodity_item_showImage" src="img/timg (1).jpg" alt="苹果手机">
    46                             <div class="commodity_item_msg">
    47                                 <p>苹果6S 168G三网通</p>
    48                                 <p>商品介绍商品介绍商品介绍商品介绍商品介绍</p>
    49                                 <p id="pricing"><span>¥:</span><span>7800</span>
    50                                     <a href="" id="go_shopping">立即抢购</a>
    51                                 </p>
    52                             </div>
    53                         </div>
    54                     </li>
    55                 </ul>
    56             </div>
    57         </div>

    JavaScript代码片段:

     1 mui.init({
     2                 pullRefresh: {
     3                     container: '#pullrefresh',
     4                     down: {
     5                         callback: pulldownRefresh
     6                     },
     7                     up: {
     8                         contentrefresh: '正在加载...',
     9                         callback: pullupRefresh
    10                     }
    11                 }
    12             });
    13             /**
    14              * 下拉刷新具体业务实现
    15              */
    16             function pulldownRefresh() {
    17                 setTimeout(function() {
    18                     var table = document.body.querySelector('.mui-table-view');
    19                     var cells = document.body.querySelectorAll('.commodity');
    20                     for(var i = cells.length, len = i + 3; i < len; i++) {
    21                         var li = document.createElement('li');
    22                         li.className = 'commodity';
    23                         li.innerHTML = '<div class="commodity_item"><img class="commodity_item_showImage" src="img/timg (1).jpg" alt="苹果手机"><div class="commodity_item_msg"><p>苹果6S 168G三网通</p><p>商品介绍商品介绍商品介绍商品介绍商品介绍</p><p id="pricing"><span>¥:</span><span>7800</span><a href="" id="go_shopping">立即抢购</a></p></div></div>';
    24                         //下拉刷新,新纪录插到最前面;
    25                         table.insertBefore(li, table.firstChild);
    26                     }
    27                     mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //refresh completed
    28                 }, 1500);
    29             }
    30             var count = 0;
    31             /**
    32              * 上拉加载具体业务实现
    33              */
    34             function pullupRefresh() {
    35                 setTimeout(function() {
    36                     mui('#pullrefresh').pullRefresh().endPullupToRefresh((++count > 2)); //参数为true代表没有更多数据了。
    37                     var table = document.body.querySelector('.mui-table-view');
    38                     var cells = document.body.querySelectorAll('.commodity');
    39                     for(var i = cells.length, len = i + 20; i < len; i++) {
    40                         var li = document.createElement('li');
    41                         li.className = 'commodity';
    42 //                        li.innerHTML = '<a class="mui-navigate-right">Item ' + (i + 1) + '</a>';
    43                         li.innerHTML = '<div class="commodity_item"><img class="commodity_item_showImage" src="img/timg (1).jpg" alt="苹果手机"><div class="commodity_item_msg"><p>苹果6S 168G三网通</p><p>商品介绍商品介绍商品介绍商品介绍商品介绍</p><p id="pricing"><span>¥:</span><span>7800</span><a href="" id="go_shopping">立即抢购</a></p></div></div>';                        
    44                         table.appendChild(li);
    45                     }
    46                 }, 1500);
    47             }
    48             if(mui.os.plus) {
    49                 mui.plusReady(function() {
    50                     setTimeout(function() {
    51                         mui('#pullrefresh').pullRefresh().pullupLoading();
    52                     }, 1000);
    53 
    54                 });
    55             } else {
    56                 mui.ready(function() {
    57                     mui('#pullrefresh').pullRefresh().pullupLoading();
    58                 });
    59             }

    具体原理实现是在mui内部写的,我们这里只要知道怎么用即可。

    下面是我在网上看到的一个插件dropload也是实现上拉加载。

    只要引入其中的代码

    1 <link rel="stylesheet" type="text/css" href="dist/css/dropload.css"/>
    2 <!--引入上拉加载-->
    3 <script src="dist/js/dropload.min.js" type="text/javascript" charset="utf-8"></script>

    具体实现的代码是:

     1 //上拉加载
     2     var itemIndex = 0;
     3     var counter = 0;
     4     // 每页展示4个
     5     var num = 4;
     6     var pageStart = 0,
     7         pageEnd = 0;
     8 
     9     // dropload
    10     var dropload = $('.host-content').dropload({
    11         scrollArea: window,
    12         loadDownFn: function(me) {
    13             // 加载菜单一的数据
    14             if(itemIndex == '0') {
    15                 $.ajax({
    16                     type: 'GET',
    17                     url: 'json/index.json',
    18                     dataType: 'json',
    19                     success: function(data) {
    20                         var result = '';
    21                         counter++;
    22                         pageEnd = num * counter;
    23                         pageStart = pageEnd - num;
    24 
    25                         if(pageStart <= data.lists.length) {
    26                             for(var i = pageStart; i < pageEnd; i++) {
    27                                 result += '<li>' + '<a class = "host-content-catalogue-item catalogue-item" href=" '+ data.lists[i].href +' ">' +
    28                                     '<div class = "catalogue-item-showImage">' + '<img src = "' + data.lists[i].pic + '" / >' + '</div>' + '<div class = "catalogue-item-msg" >' +
    29                                     '<p class = "catalogue-item-msg-title" >' + data.lists[i].title + '</p>' + '<p class = "catalogue-item-msg-intro" >' + data.lists[i].details + '</p>' +
    30                                     '<p id = "pricing" >' + '<span>' + "¥" + '</span>' + '<span>' + data.lists[i].price + '</span>' + '<a href = " '+ data.lists[i].href +' " id = "go-shopping" >' + "立即抢购" + '</a>' + '</p>' + '</div>' + '</a>' + '</li>';
    31                                 if((i + 1) >= data.lists.length) {
    32                                     // 数据加载完
    33                                     tab1LoadEnd = true;
    34                                     // 锁定
    35                                     me.lock();
    36                                     // 无数据
    37                                     me.noData();
    38                                     break;
    39                                 }
    40                             }
    41                             // 为了测试,延迟1秒加载
    42                             setTimeout(function() {
    43                                 $('.host-content-catalogue ul').eq(itemIndex).append(result);
    44                                 // 每次数据加载完,必须重置
    45                                 me.resetload();
    46                             }, 1000);
    47                         }
    48                     },
    49                     error: function(xhr, type) {
    50                         alert('Ajax error!');
    51                         // 即使加载出错,也得重置
    52                         me.resetload();
    53                     }
    54                 });
    55             }
    56         }
    57     });

    这样就可以完整的实现上拉加载了,具体result+=后边跟什么就看自己需要什么了。

  • 相关阅读:
    Linux进程状态——top,ps中看到进程状态D,S,Z的含义
    openstack-neutron基本的网络类型以及分析
    openstack octavia的实现与分析(二)·原理,架构与基本流程
    网络虚拟化基础协议·Geneve
    openstack octavia的实现与分析(一)·openstack负载均衡的现状与发展以及lvs,Nginx,Haproxy三种负载均衡机制的基本架构和对比
    Linux下多网卡绑定bond及模式介绍
    Python调试器-pdb的使用
    DELL R720服务器安装Windows Server 2008 R2 操作系统图文详解
    JAVA WEB实现前端加密后台解密
    JAVA实现AES和MD5加密
  • 原文地址:https://www.cnblogs.com/hgs-159/p/6781428.html
Copyright © 2020-2023  润新知