/*
*page plugin 1.0 2016-09-29 by cary
*/
(function ($) {
//濮掓稒枪椤撳宕i崒娑欐
var defaults = {
totalPages: 9,//闁诡剙顭烽妴澶愬极閿燂拷
liNums: 9,//闁告帒妫濋妴澶愭儍閸曨剚娈堕悗娑欘殕鐎垫粓鏌﹂鑺ユ(鐎点倝缂氶鍛村矗閺嵮屾疄闁轰緤鎷?
activeClass: 'active' ,//active缂侇偓鎷
firstPage: '',//濡絾鐗犻妴澶愬箰婢舵劖灏﹂柛姘Ф琚
lastPage: '',//闁哄牜鍋婇妴澶愬箰婢舵劖灏﹂柛姘Ф琚
prv: '',//闁告挸绉崇粩瀛樸亜閸偄鐦婚梺绛嬪枛閹洜绮旈敓锟
next: '',//闁告艾绨肩粩瀛樸亜閸偄鐦婚梺绛嬪枛閹洜绮旈敓锟
hasFirstPage: true,//闁哄嫷鍨伴幆渚€寮垫径鎰垫禃濡炪倕鐏氱€垫粓鏌﹂敓锟
hasLastPage: true,//闁哄嫷鍨伴幆渚€寮垫径瀣睘濡炪倕鐏氱€垫粓鏌﹂敓锟
hasPrv: true,//闁哄嫷鍨伴幆渚€寮垫径濠傤枀濞戞挴鍋撳銈呯仛鐎垫粓鏌﹂敓锟
hasNext: true,//闁哄嫷鍨伴幆渚€寮垫径濠冨€靛☉鎾亾濡炪倕鐏氱€垫粓鏌﹂敓锟
callBack : function(page){
//闁搞儳鍋炵敮鈧柨娑橆唹age闂侇偄顦懙鎴炪亜閸偅娈
}
};
//闁圭粯甯婂▎銏ゅ触瀹ュ泦锟
$.fn.Page = function (options) {
//閻熸洖妫涘ú濠冾渶濡鍚囬柛娆忓€归弳锟
var opts = $.extend(defaults, options);
//濞戞捁顕ч崵閬嶅极閿燂拷
return this.each(function () {
var obj = $(this);
var l = opts.totalPages;
var n = opts.liNums;
var active = opts.activeClass;
var str = '';
var str1 = '
1';
if (l > 1&&l < n+1) {
for (i = 2; i < l + 1; i++) {
str += '' + i + '';
}
}else if(l > n){
for (i = 2; i < n + 1; i++) {
str += '' + i + '';
}
}
var dataHtml = '';
if(opts.hasNext){
dataHtml += '' + opts.next + '
';
}
if(opts.hasLastPage){
dataHtml += '' + opts.lastPage + '
';
}
dataHtml += '';
if(opts.hasFirstPage){
dataHtml += '' + opts.firstPage + '
';
}
if(opts.hasPrv){
dataHtml += '' + opts.prv + '
';
}
obj.html(dataHtml).off("click");//闂傚啫寮堕娑㈠箵閹哄秵顐介梺鎻掔Т椤﹁尙鎷崘顏呮殢闁哄啳顔愮槐婵嬫煂瀹ュ拋妲荤紓浣瑰灥閻g偓绂嶇€b晜顐
obj.on('click', '.next', function () {
var pageshow = parseInt($('.' + active).html());
var nums,flag;
var a = n % 2;
if(a == 0){
//闁稿鍩栭弳锟
nums = n;
flag = true;
}else if(a == 1){
//濠靛倸娲﹂弳锟
nums = (n+1);
flag = false;
}
if(pageshow >= l) {
return;
}else if(pageshow > 0&&pageshow <= nums/2){
//闁哄牃鍋撻柛鎾崇Т閸ゆ垶銇勯敓锟
$('.' + active).removeClass(active).parent().next().find('a').addClass(active);
}else if((pageshow > l-nums/2&&pageshow < l&&flag==false)||(pageshow > l-nums/2-1&&pageshow < l&&flag==true)){
//闁哄牃鍋撻柛姘閸ゆ垶銇勯敓锟
$('.' + active).removeClass(active).parent().next().find('a').addClass(active);
}else{
$('.' + active).removeClass(active).parent().next().find('a').addClass(active);
fpageShow(pageshow+1);
}
opts.callBack(pageshow+1);
});
obj.on('click', '.prv', function () {
var pageshow = parseInt($('.' + active).html());
var nums = odevity(n);
if (pageshow <= 1) {
return;
}else if((pageshow > 1&&pageshow <= nums/2)||(pageshow > l-nums/2&&pageshow < l+1)){
//闁哄牃鍋撻柛鎾崇Т閸ゆ垶銇勭憴鍕仐闁哄牃鍋撻柛姘閸ゆ垶銇勯敓锟
$('.' + active).removeClass(active).parent().prev().find('a').addClass(active);
}else {
$('.' + active).removeClass(active).parent().prev().find('a').addClass(active);
fpageShow(pageshow-1);
}
opts.callBack(pageshow-1);
});
obj.on('click', '.first', function(){
var activepage = parseInt($('.' + active).html());
if (activepage <= 1){
return
}//鐟滅増鎸告晶鐘电箔椤戣法顏卞銈忔嫹
opts.callBack(1);
fpagePrv(0);
});
obj.on('click', '.last', function(){
var activepage = parseInt($('.' + active).html());
if (activepage >= l){
return;
}//鐟滅増鎸告晶鐘诲嫉閳ь剟宕ユ惔婵堫伇濡炪倧鎷
opts.callBack(l);
if(l>n){
fpageNext(n-1);
}else{
fpageNext(l-1);
}
});
obj.on('click', 'li', function(){
var $this = $(this);
var pageshow = parseInt($this.find('a').html());
var nums = odevity(n);
opts.callBack(pageshow);
if(l>n){
if(pageshow > l-nums/2&&pageshow < l+1){
//闁哄牃鍋撻柛姘閸ゆ垶銇勯敓锟
fpageNext((n-1)-(l-pageshow));
}else if(pageshow > 0&&pageshow < nums/2){
//闁哄牃鍋撻柛鎾崇Т閸ゆ垶銇勯敓锟
fpagePrv(pageshow-1);
}else{
fpageShow(pageshow);
}
}else{
$('.' + active).removeClass(active);
$this.find('a').addClass(active);
}
});
//闂佹彃绉甸弻濠傘€掗崣澶屽帬缂備焦鎸婚悗锟
/*activePage 鐟滅増鎸告晶鐘炽亜閿燂拷*/
function fpageShow(activePage){
var nums = odevity(n);
var pageStart = activePage - (nums/2-1);
var str1 = '';
for(i=0;i' + (pageStart+i) + ''
}
obj.find('ul').html(str1);
obj.find('ul li').eq(nums/2-1).find('a').addClass(active);
}
/*index 闂侇偄顦懙鎴炪亜閸︻厼鍋嶇€殿噯鎷?/
function fpagePrv(index){
var str1 = '';
if(l>n-1){
for(i=0;i' + (i+1) + ''
}
}else{
for(i=0;i' + (i+1) + ''
}
}
obj.find('ul').html(str1);
obj.find('ul li').eq(index).find('a').addClass(active);
}
/*index 闂侇偄顦懙鎴炪亜閸︻厼鍋嶇€殿噯鎷?/
function fpageNext(index){
var str1 = '';
if(l>n-1){
for(i=l-(n-1);i' + i + ''
}
obj.find('ul').html(str1);
obj.find('ul li').eq(index).find('a').addClass(active);
}else{
for(i=0;i' + (i+1) + ''
}
obj.find('ul').html(str1);
obj.find('ul li').eq(index).find('a').addClass(active);
}
}
//闁告帇鍊栭弻鍣噄Nums闁汇劌瀚〃宀勫磻閼哥鍋撻敓锟
function odevity(n){
var a = n % 2;
if(a == 0){
//闁稿鍩栭弳锟
return n;
}else if(a == 1){
//濠靛倸娲﹂弳锟
return (n+1);
}
}
});
}
})(jQuery);