zoukankan      html  css  js  c++  java
  • iscroll动态加载数据完美解决方案

    <div id="wrapper" class="margin-b90">
            <div id="scroller">
                <div id="pullDown">
                    <span class="pullDownLabel" style="text-align: center;">加载中...</span>
                </div>
                <div class="sps_itemBox ">
                    <div class="list_show">
                        <ul id="ulList"></ul>
                    </div>
                </div>
    
                <div id="pullUp">
                    <span class="pullUpLabel" style="text-align: center;">上拉加载...</span>
                </div>
            </div>
        </div>

    js.

    // iScroll 滚动条/上拉刷新/下拉加载
    var myScroll,
        pullDownEl,
        pullDownOffset,
        pullUpEl,
        pullUpOffset;
    
    function loaded() {
        pullDownEl = document.getElementById('pullDown');
        pullDownOffset = pullDownEl.offsetHeight;
        pullUpEl = document.getElementById('pullUp');
        pullUpOffset = pullUpEl.offsetHeight;
        myScroll = new iScroll('wrapper', {
            useTransition: false,
            topOffset: pullDownOffset,
            btnOffset: pullUpOffset,
            hideScrollbar: true,
            fadeScrollbar: true,
            onRefresh: function () {
                if (pullDownEl.className.match('loading')) {
                    pullDownEl.className = '';
                    //pullDownEl.querySelector('.pullDownLabel').innerHTML = '下拉刷新...';
                    pullDownEl.querySelector('.pullDownLabel').innerHTML = '数据更新时间:' + updateDatetime;
                } else if (pullUpEl.className.match('loading')) {
                    pullUpEl.className = '';
                    pullUpEl.querySelector('.pullUpLabel').innerHTML = '上拉加载...';
                }
            },
            onScrollMove: function () {
                if (this.y > 5 && !pullDownEl.className.match('flip')) {
                    pullDownEl.className = 'flip';
                    //pullDownEl.querySelector('.pullDownLabel').innerHTML = '释放刷新...';
                    pullDownEl.querySelector('.pullDownLabel').innerHTML = '数据更新时间:' + updateDatetime;
                    this.minScrollY = 0;
                } else if (this.y < 5 && pullDownEl.className.match('flip')) {
                    pullDownEl.className = '';
                    //pullDownEl.querySelector('.pullDownLabel').innerHTML = '下拉刷新...';
                    pullDownEl.querySelector('.pullDownLabel').innerHTML = '数据更新时间:' + updateDatetime;
                    this.minScrollY = -pullDownOffset;
                } else if (this.y < (this.maxScrollY - pullUpOffset - 40) && !pullUpEl.className.match('flip')) {
                    pullUpEl.className = 'flip';
                    pullUpEl.querySelector('.pullUpLabel').innerHTML = '释放加载...';
                    this.maxScrollY = this.maxScrollY - pullUpOffset;
                }
                //else if (this.y > (this.maxScrollY - pullUpOffset) && pullUpEl.className.match('flip')) {
                //    pullUpEl.className = '';
                //    pullUpEl.querySelector('.pullUpLabel').innerHTML = '上拉加载...';
                //    //this.maxScrollY = pullUpOffset;
                //}
            },
            onScrollEnd: function () {
                if (pullDownEl.className.match('flip')) {
                    pullDownEl.className = 'loading';
                    //pullDownEl.querySelector('.pullDownLabel').innerHTML = '数据刷新中...';
                    pullDownEl.querySelector('.pullDownLabel').innerHTML = '数据更新时间:' + updateDatetime;
                    myScroll.refresh();
                } else if (pullUpEl.className.match('flip')) { 
                    pullUpEl.className = 'loading';
                    pullUpEl.querySelector('.pullUpLabel').innerHTML = '数据加载中...';
                    setTimeout(function () { myScroll.refresh(); }, 3000);
    
                }
            }
        });
    }
    document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
    document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 200); }, false);

    css

    /* iScroll */
    #wrapper{width:100%; position:absolute; top:0; bottom:0; z-index:1; overflow:hidden;}
    #scroller{
        width:100%; position:absolute; z-index:1;
        -webkit-touch-callout:none; -webkit-tap-highlight-color:rgba(0,0,0,0);
    }
    #pullDown,
    #pullUp{padding:15px 0 15px 60px; font-size:14px; line-height:27px; color:#303030;}
    #pullDown{background:url(../images/loadBottom.png) no-repeat 30px center; background-size:27px 27px;}
    #pullUp{background:url(../images/loadTop.png) no-repeat 30px center; background-size:27px 27px;}
    #pullDown.flip{background:url(../images/loadTop.png) no-repeat 30px center; background-size:27px 27px;}
    #pullUp.flip{background:url(../images/loadBottom.png) no-repeat 30px center; background-size:27px 27px;}
    #pullDown.loading,
    #pullUp.loading{background:url(../images/loading.gif) no-repeat 30px center; background-size:25px 27px;}
    /* iScroll end */
  • 相关阅读:
    Jane Austen【简·奥斯汀】
    I Like for You to Be Still【我会一直喜欢你】
    Dialogue between Jack and Rose【jack 和 Rose的对话】
    git删除远程.idea目录
    码云初次导入项目(Idea)
    DelayQueue 订单限时支付实例
    eclipse安装spring的插件
    redis安装命令
    log4j详解
    jstree API
  • 原文地址:https://www.cnblogs.com/ShoneH/p/5253758.html
Copyright © 2011-2022 走看看