/** * @author wsf 前台分页(只对已经加载的数据进行分割) */ ; (function (win,$){ /** * 自定义命名空间 */ $.scrollPage = $.extend({},{ /** * page对象 */ config:{ pageData:{},//页面数据 dataLoding:false,//是否正在加载数据 canStartLoadData:false,//是否可以开始加载数据 pageNo:1,//页码 pageItem:10,//没有的数据条数(每页显示的条数) currentPageItem:30,//当前页面显示了多少数据 time:null,//时间及时器 speed:10,//判断是否可加载的间隔 }, /** * 初始化 */ init:function (_config){ var _this = $.scrollPage;// $.extend(_this.config,_config); return _this;//为了链式操作 }, /** * 设置pageData */ setPageData:function (pageData){ this.config.pageData = pageData; }, /** * 加载下一页 */ getNext:function (){ var _this = $.scrollPage; var cfg = _this.config; var sliceStart = cfg.currentPageItem;//数组截取开始下标 cfg.pageNo ++;//页码加一 cfg.currentPageItem = cfg.pageNo*cfg.pageItem; var sliceEnd = cfg.currentPageItem;//数组截取开始下标 return cfg.pageData.slice(sliceStart,sliceEnd); }, /** * 返回前一页 */ getPrev:function (){ var _this = $.scrollPage; var cfg = _this.config; var sliceEnd = cfg.currentPageItem;//数组截取开始下标 cfg.pageNo--;//页码加一 cfg.currentPageItem = cfg.pageNo*cfg.pageItem; var sliceStart = cfg.currentPageItem;//数组截取开始下标 return cfg.pageData.slice(sliceStart,sliceEnd); }, /** * 监听页面滚动事件 */ listener:function (){ var _this = $.scrollPage; var cfg = _this.config; //var _canStart = _this._canStartLoadData();//是否可以开始加载 var _canStart = _this.isPageBottom();//是否滚动到页面底部 if(_canStart){ showMyLoading(); _this._startLoad(_this._endLoad);//开始加载 } return _this; }, /** * 开始加载数据 */ _startLoad:function (callback){ var _this = $.scrollPage; var cfg = _this.config; cfg.dataLoding = true;//正在加载数据 var _loadData = _this.getNext();//要加载的数据 for(var i in _loadData){ _this._addRow(_loadData[i]);//添加行 } if(callback) callback(); }, /** * 添加行 */ _addRow:function (_pageData){ var _this = $.scrollPage; var cfg = _this.config; $('#content').treegrid('append',{ parent: 0, // 这里指定父级标识就可以了 data: [_pageData] }); _this._interlaceRow();//隔行变色 }, /** * 加载结束 */ _endLoad:function (){ var _this = $.scrollPage; var cfg = _this.config; cfg.dataLoding = false; cfg.canStartLoadData = false; setTimeout(function (){ closeLoading(); },2000); return _this; }, /** * 是否可以开始加载数据 */ _canStartLoadData:function (){ var _this = $.scrollPage; var cfg = _this.config; var scrollPos = _this._scrollPosition(); }, /** * 页面滚动到哪个地方了 */ _scrollPosition:function (){ var _this = $.scrollPage; var cfg = _this.config; var scrTop = $("body").scrollTop();//页面的滚动高度 return scrTop; }, /** * 判断页面是否滚动到底部 */ isPageBottom:function () { var scrollTop = 0; var clientHeight = 0; var scrollHeight = 0; /* if (document.documentElement && document.documentElement.scrollTop) { scrollTop = document.documentElement.scrollTop; } else if (document.body) { scrollTop = document.body.scrollTop; } */ scrollTop = $(document).scrollTop(); /* if (document.body.clientHeight && document.documentElement.clientHeight) { clientHeight = (document.body.clientHeight < document.documentElement.clientHeight) ? document.body.clientHeight: document.documentElement.clientHeight; } else { clientHeight = (document.body.clientHeight > document.documentElement.clientHeight) ? document.body.clientHeight: document.documentElement.clientHeight; } */ clientHeight = $(document).height(); // 知识点:Math.max 比较大小,取最大值返回 scrollHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)