zoukankan      html  css  js  c++  java
  • 记录webApp 中使用下拉刷新,上拉加载的的实例

    使用 pullToRefresh.js和iscroll.js

    首先页面引入相关文件

    <script src="../../../js/jquery-2.1.3.min.js"></script>
        <script src="../../../js/pullToRefresh.js"></script>
        <script src="../../../js/iscroll.js"></script>
        <link href="../../../scrollcss/reset.css" rel="stylesheet" />
        <link href="../../../scrollcss/pullToRefresh.css" rel="stylesheet" />
    

      html部分

     <div id="wrapper" class="wrapper page-home">
            <div><%--这个div标签必写因为在iscrool.js中取id为wrapper下的第一个元素为滑动对象--%>
                <div class="couponList">
                </div>
                <i id="onloadMore">点击加载更多...</i>
    
            </div>
        </div>
    

      js部分

    判断是PC端还是移动端

    var system = {};
    var p = navigator.platform;
    system.win = p.indexOf("Win") == 0;
    system.mac = p.indexOf("Mac") == 0;
    system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);
    var isPC = system.win || system.mac || system.xll;
    

      在页面加载完成的时候调用下面方法

    function judgeIsPC() {
                //debugger;
                var height = $(window).height();
                var width = $('#device_group').innerWidth();
                var width = $('#device_group').outerWidth();
                isPC = false;
                if (isPC) {//PC端
                    // debugger;
                    $('html').css({ "height": "100%", "overflow": "hidden" });
                    $('body').css({ "height": "100%", "overflow": "hidden" });
                    $(".couponList").css({ "height": height - 122, "overflow-y": "auto" });//$(".couponList")为需要分页显示数据的元素
                    $(".pullUp").hide();
                    $("#onloadMore").show();               
                } else {               
                    refresher.init({
                        id: "wrapper",
                        pullDownAction: Refresh,//下拉刷新时调用的方法
                        pullUpAction: Load//上拉加载更多时调用的方法
                    });
                    $("#wrapper").css({ "height": height-46, "min-height":0});
                    wrapper.refresh();/****remember to refresh after action completed!!!   ---id.refresh(); --- ****/
                    $("#onloadMore").hide();
                    setTimeout(function () {
                        var el, li, i;
                        el = document.querySelector("#wrapper div");
                        $(".pullUpLabel").text("上拉进行翻页...").show();
                        wrapper.refresh();/****remember to refresh after action completed!!!   ---id.refresh(); --- ****/
                        $(".pullUp").removeClass("loading").show();
                        $(".loader").hide();
                        
                    }, 1000);
                    
                }
            }
    

      

     $(function () {
                $("#onloadMore").hide();
                judgeIsPC();
                fillPage();//加载分页数据的方法       
                $("#onloadMore").click(function () {
                    debugger;
                    if ($(this).text() == "没有数据了...") {
                        return true;
                    }
                    fillPage();
                });
            });
    

      

     function fillPage(callback) {
                
                var html = '';
                $.ajax({
                    type: 'get',
                    url: '/Admin/Ajax/Coupon.ashx',
                    dataType: 'json',
                    async: false,
                    data: {
                        act: 'GetCouponPlanPage',
                        PageIndex: pageIndex ? pageIndex : 1,
                        PageSize: 5,
                        BeginDate: 0,
                        EndDate: 0,
                        ShopID: '<%=_AdminUserInfo.ShopID%>',
                        Keyword: ''
                    },
                    success: function (result) {
                        if ((result == null || !result.success) || (result.data == null || result.data.length == 0)) {
                            if (!isPC) {
                                $(".pullUpLabel").text("没有更多数据了...").show();
                                $(".pullUp").removeClass("loading").show();
                                $(".loader").hide();
                                wrapper.refresh();
                            } else {
                                $("#onloadMore").text("没有数据了...").show();
                            }
                            return;
                        }
                        if (result && result.success && result.data) {
                            var couponList = result.data;
                            pageIndex++;
                            for(let i=0;i<couponList.length;i++){
                                html+='<div class="couponItem">';  
                                html+=' <div class="row">';
                                html+=' <span class="partTitle">名称:</span>';
                                html+=' <span>'+couponList[i].Name+'</span>';
                                html+=' </div>';
                                html+='<div class="row">';
                                html += ' <span class="partTitle">参与商品:</span>';
                                html += '<div style="display:inline-block;77%">';
                                html += '<span class="oneElem" style="100%">' + couponList[i].GoodsNames + '</span>';
                                html += '</div>';
                                html+=' </div>';
                                html+=' <div class="row">';
                                html += ' <span class="partTitle">参与设备:</span>';
                                html += '<div style="display:inline-block;77%">';
                                html += '<span class="oneElem" style="100%">' + couponList[i].MachineIDs + '</span>';
                                html += '</div>';
                                html+='</div>';
                                html+=' <div class="row">';
                                html += '<span class="partTitle">参与群体:</span>';                            
                                html += '<span>' + transformUsertype(couponList[i].UserType) + '</span>';
                                html+='</div>';
                                html+='<div class="row">';
                                html+=' <span class="partTitle">领取限制:</span>';
                                html += '<span>' + couponList[i].CycleDay + "天最多领取" + couponList[i].ReceiveCount +"个" + '</span>';
                                html+='</div>';
                                html+='<div class="row">';
                                html+='<span class="partTitle">有效期限:</span>';
                                html+='<span>'+couponList[i].CreateDate+" - "+couponList[i].EndDate+'</span>';
                                html+='</div>';
                                html+='<div class="plainRow">';
                                html+='<span class="partTitle">临期规则:</span>';
                                for (let j = 0; j < couponList[i].PlanList.length; j++) {
                                    var plan = couponList[i].PlanList[j];
                                  var style =  j == 0 ? '' : 'style = "margin-left:70px;"';
                                  html += '<div class="plain" ' + style + '>临期' + plan.DateSpan + "天," + (plan.Amount == 0 ? ("享受" + plan.Discount + "折") : ("一律" + plan.Amount + "元")) + '</div>';
                                }
                                html+=' </div>';
                                html+='<div class="row editButtons">';
                                html += ' <input type="button" value="编辑" onclick="editCoupon(this)" data-id="' + couponList[i].CouponPlanID + '" class="button-solid edit_button"/>';
                                html += '<input type="button" class="button-white edit_button" onclick="deleteCoupon(this)" data-id="' + couponList[i].CouponPlanID + '" value="删除" />';
                                html+='</div>';
                                html+='<div class="sspace2"></div>';
                                html += '</div>';
                            }
                            if (!isPC) $(".pullUpLabel").text("上拉进行翻页...").show();
                            else $("#onloadMore").text("点击加载更多...").show();
                            if (callback != undefined) callback();
                        } 
                    }, error: function (result) {
                        //layer.msg((result && result.message) ? result.message : '请稍后重试');
                        if (!isPC) $(".pullUpLabel").text("没有更多数据了...").show();
                        else $("#onloadMore").text("没有数据了...").show();
                    }
                });
                $('.couponList').append(html);
            }
           
            function Load() {  //下拉要加载的代码             
                var el, li, i;
                el = document.querySelector("#wrapper div");
                fillPage(function () {
                    // debugger;
                    wrapper.refresh();/****remember to refresh after action completed!!!   ---id.refresh(); --- ****/
                    if (!isPC) {
                        $(".pullUp").removeClass("loading").show();
                        $(".loader").hide();
                    }
                });
    
            }
            function Refresh() {  //上拉要执行的代码
                setTimeout(function () {    // <-- Simulate network congestion, remove setTimeout from production!
                    var el, li, i;
                    el = document.querySelector("#wrapper div");
                    el.innerHTML = '';
                    wrapper.refresh();/****remember to refresh after  action completed! ---yourId.refresh(); ----| ****/
                    location.reload();
    
                }, 1000);
    
            }
    

      补充css,只显示一行超出的部分显示...

     .oneElem{
                 *display:inline-block;*
                 word-break: break-all;
                 display: -webkit-box;
                 -webkit-line-clamp: 1;
                 -webkit-box-orient: vertical;
                 overflow: hidden;
                 text-overflow: ellipsis;
                 /*border-bottom:1px #DDD solid;*/
            }
    

      

  • 相关阅读:
    Yield Usage Understanding
    Deadclock on calling async methond
    How to generate file name according to datetime in bat command
    Run Unit API Testing Which Was Distributed To Multiple Test Agents
    druid的关键参数+数据库连接池运行原理
    修改idea打开新窗口的默认配置
    spring boot -thymeleaf-url
    @pathvariable和@RequestParam的区别
    spring boot -thymeleaf-域对象操作
    spring boot -thymeleaf-遍历list和map
  • 原文地址:https://www.cnblogs.com/ouyangxiaoyao/p/11959103.html
Copyright © 2011-2022 走看看