/* * @Author: Jeay * @Date: 2017-10-9 09:31:11 * @Last Modified by: Jeay * @Last Modified time: 2017-12-03 12:18:00 */ /** * * @param {需要分页的列表jQuery对象} obj * @param {每页显示多少条,默认20} pSize * 使用方式: * 1. 结构 * div>ul+button.pager+(div>ul.pagination.page_index+ul.pagination.page_pre+ul.pagination.page_no+ul.pagination.page_next+ul.pagination.page_last)+span>strong.total * 2. 实例化 * 示例: new Page($('.model-case-list li'),10); * 3. 懒加载 * 列表内的图片src替换为data-src * 示例: */ function Page(obj, pSize, parentObj) { //初始化变量 var pSize = pSize || 20; var obj = obj; var current = 1; var parentObj = parentObj || obj.parent().parent(); //设置分页类名 var i = 1; //隐藏所有内容 obj.hide(); //加载图片 var loadPic = function (i) { if (obj.find("img").length > 0 && !obj.parent().find('.page_' + i).eq(0).find("img").attr("src")) { //console.log("加载图片:"+i); obj.parent().find('.page_' + i).each(function () { $(this).find("img").attr("src", $(this).find("img").attr("data-src")); }) } } //页面切换 var changePage = function (i, hidePre) { //console.log("页面切换:"+i); if (i != parentObj.find(".pagination-group a.active").html()) { //切换内容 if (hidePre !== true) { obj.hide(); //翻页后滚动 $('html,body').animate({scrollTop: parentObj.offset().top}, 100); } obj.parent().find('.page_' + i).show(); //加载图片 if (obj.find("img").length > 0 && obj.find("img").attr("data-src") && !obj.parent().find('.page_' + i).eq(0).find("img").attr("src")) { loadPic(i); } //切换分页 parentObj.find('.page_no li a.active').removeClass('active') parentObj.find('.page_no li a').eq(i - 1).addClass('active'); } } obj.each(function (index) { if (index == pSize*i) {i++} $(this).addClass('page_'+i) }); //显示第一组 $('.page_1').show(); //加载第一组图片 if (obj.find("img").attr("data-src")) { loadPic(1); } //设置分页 var res= ''; for (var j = 1; j'; } else{ res+='
  • '+j+'
  • '; } }; parentObj.find('.page_no').append(res); parentObj.find('.total').append(i); //分页点击事件 parentObj.find(".page_index").click(function () { changePage(1); }); parentObj.find(".page_last").click(function() { changePage(i); }); parentObj.find(".page_pre").click(function () { current = current - 1 < 1 ? 1 : current - 1; changePage(current); }); parentObj.find(".page_next").click(function () { current = current + 1 > i ? i : current + 1; changePage(current); }); parentObj.find('.page_no').on('click', 'li', function () { changePage($(this).index()+1); }); parentObj.find(".pager").click(function() { if (current == i - 1) { parentObj.find(".pager span").hide() }; current = current + 1 > i ? i : current + 1; changePage(current,true); }); }