页面到指定位置自动加载数据-ScrollPagination

2012年4月2日 发表评论 阅读评论

半成品。。。

ScrollPagination

function ScrollPagination(opts){
    this.defaults = {
           ‘contentPage’ : null, //请求url
          ‘contentData’ : {}, //请求参数
         ‘beforeLoad’: null, //请求前
         ‘afterLoad’: null, //请求后
         ‘beforeShowData’:null, //显示数据前
         ‘showData’:null, //显示内容ID或处理函数或对象
         ‘scrollTarget’: $(window), //触发事件容器对象
         ‘heightOffset’: 0, //触发条件高度
         ‘dataType’:'html’    
    };

    this.isStop = false;

    this.is_running = false;

    this.param = {};
    
    this.init = function (opts){
        if(typeof(opts) == ‘undefined’ || typeof(opts) != ‘object’)
            this.param = this.defaults;
        else{
            for(var i in this.defaults){
                if(typeof(opts[i]) == ‘undefined’){
                    this.param[i] = this.defaults[i];
                }else{
                    this.param[i] = opts[i];
                }
            }
        }
        target = this.param.scrollTarget;
        var that = this;
        $(target).scroll(function(event){
            that.scroll(that.param);
        });
    };

    this.init(opts);

    this.scroll = function(opts){

        var that = this;
        if(that.isStop){
            return;
        }
        var target = opts.scrollTarget;
        var mayLoadContent = $(target).scrollTop()+opts.heightOffset >= $(document).height() – $(target).height();
        
        if(mayLoadContent == false) return;

        if(that.is_running)return;
        that.is_running = true;
        
        if (that.param.beforeLoad != null){
            that.param.beforeLoad(that);
        }
         $.ajax({
              type: ‘GET’,
              url: that.param.contentPage,
              data: that.param.contentData,
              success: function(data){
                  that.is_running = false;
                if(that.param.beforeShowData != null){
                    data = that.param.beforeShowData(data,that);
                }
                if(typeof(that.param.showData) == ‘string’){
                    $(‘#’+that.param.showData).append(data);
                }else
                if(typeof(that.param.showData) == ‘object’){
                    $(that.param.showData).append(data);
                }else
                if(typeof(that.param.showData) == ‘function’){
                    data = that.param.showData(data,that);
                }
                //$(obj).append(data);
                //var objectsRendered = $(obj).children(‘[rel!=loaded]‘);
                
                if (that.param.afterLoad != null){
                    that.param.afterLoad(data,that);    
                }
              },
              dataType: that.param.dataType
         });
    };
}


转载请注明来自:[MSN Spaces]http://msn.shandian.biz/110.html

  1. 本文目前尚无任何评论.