app-framework学习--公用加载、刷新

app-framework学习–公用加载、刷新


作者:木尘2015-02-05
交流群:333492644

scrooller,上拉加载,下拉刷新(2.2)。群里有人问,我就给大家分享下吧!

/**
 * @Author:      muchen
 * @DateTime:    2015-03-04 10:30:10
 * @Description: add下拉刷新 add上啦加载分页
 * @param:       myScroller Scroller对象
 * @param:       emptyID 刷新时要清空的div id
 * @param:       useFun 刷新加载需要调用的方法
 */
function addScroller(myScroller,emptyID,useFun){
    if(page == 1){
        myScroller.scrollToTop();
    }
    //Scroller add下拉刷新
    myScroller.addPullToRefresh();
    //Scroller add上啦加载分页
    myScroller.addInfinite();
    myScroller.runCB=true;
    var hideClose;
    $.unbind(myScroller, "refresh-release");
    $.bind(myScroller, "refresh-release", function () {
        var that = this;
        clearTimeout(hideClose);
        hideClose = setTimeout(function (){
            $("#" + emptyID).empty();
            page = 1;
            hasMorePage = true;
            eval(useFun);
            that.hideRefresh();
        }, 1600);
        return false; //tells it to not auto-cancel the refresh
    });
    //滚动过去,下拉将不再起作用!手动取消拉动刷新
    $.bind(myScroller, "refresh-cancel", function () {
        clearTimeout(hideClose);
    });

    myScroller.enable();
    /*修复afui refresh事件会触发infinite事件bug*/
    $(document.body).unbind("touchmove");
    $(document.body).bind("touchmove", function(e) {
        if (touch.y1 - touch.y2 <= 0) {
            $("#infinite").hide();
        } else {
            $("#infinite").show();
        }
    });
    $.unbind(myScroller, "infinite-scroll");
    $.bind(myScroller, "infinite-scroll", function () {
        var self = this;
        if (!hasMorePage) {//没有数据了,则直接返回,不在下拉
            self.clearInfinite();
            //$("#noItem")[0] ? $("#" + emptyID).append('') : $("#" + emptyID).append('<div id="noItem"><span>没有更多数据了</span></div>');
            return;
        }
        if($("#infinite").length==0){
            $(self.el).append('<div id="infinite"><div class="pullDown loading"><span class="pullDownIcon"></span><span class="pullDownLabel">正在加载...</span></div></div>');
            $.unbind(myScroller, "infinite-scroll-end");
            $.bind(myScroller, "infinite-scroll-end", function () {
                //if(isScrollDown){return false;};
                $.unbind(myScroller, "infinite-scroll-end");
                self.scrollToBottom();
                setTimeout(function () {
                    $(self.el).find("#infinite").remove();
                    self.clearInfinite();
                    eval(useFun);
                    page++;
                    self.scrollToBottom();
                }, 1600);
            });
        }else {
            return;
        }
    });
}
/**
 * @Author:      muchen
 * @DateTime:    2015-03-04 10:30:10
 * @Description: add下拉刷新
 * @param:       myScroller Scroller对象
 * @param:       clearnFun刷新时要清空方法
 * @param:       useFun 刷新加载需要调用的方法
 */
function addScrollerRefresh(myScroller,clearnFun,useFun){
    myScroller.scrollToTop();
    //Scroller add下拉刷新
    myScroller.addPullToRefresh();
    //向下拉动出现下拉开始刷新
    var hideClose;
    myScroller.runCB=true;
    $.unbind(myScroller, "refresh-release");
    $.bind(myScroller, "refresh-release", function () {
        var that = this;
        clearTimeout(hideClose);
        hideClose = setTimeout(function (){
            eval(clearnFun);
            eval(useFun);
            that.hideRefresh();
        }, 2000);
        return false; //tells it to not auto-cancel the refresh
    });
    //滚动过去,下拉将不再起作用!手动取消拉动刷新
    $.bind(myScroller, "refresh-cancel", function () {
        clearTimeout(hideClose);
    });
    myScroller.enable();
}

使用方法如下:
1.定义两个全局变量:

var page = 1; 当前页数
var hasMorePage = true;//默认还有分页

2.创建:Scroller对象

 var _myScroller =  $("#hello").scroller({
        verticalScroll : true,
        horizontalScroll : false,
        vScrollCSS: "afScrollbar",
        autoEnable : true
    });

3.使用:

addUseScroller(_myScroller,'helloList','getHelloList()');
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值