首頁 > web前端 > js教程 > jquery動態分頁效果堪比時光網_jquery

jquery動態分頁效果堪比時光網_jquery

WBOY
發布: 2016-05-16 16:35:26
原創
1474 人瀏覽過

最近一直研究jquery的分頁效果,剛剛弄好了一個,拿出來與大家分享。分頁效果與時光網的差不多。

先在aspx頁面放置一個

,這個是用來存放分頁的。

然後建一個page.js文件,具體程式碼如下(js中用到的css類別是自己設定的,這裡就不給了,具體的大家可以自己設定一下css樣式):

複製程式碼 程式碼如下:

$(document).ready(function(){
var pageCount=0;//總頁數,在資料處理的函數裡設定

//////////////////////右按鈕分頁顯示
function right(pageCount,limit,rlimit){
var html="";
if(parseInt(pageCount)-limit>=rlimit){
for(var i=parseInt(pageCount)-rlimit 1; i html ="" i "";}
}
else{
for(var i=parseInt(limit) 1; i html ="" i "";}
}
return html;
}
//////////////////////////首頁,尾頁,上一頁,下一頁
function changeState(pageIndex,pageCount){
var $button1=$("div.pageDivs").find("#Button1");//上一頁
var $button2=$("div.pageDivs").find("#Button2");//下一頁
var $first=$("div.pageDivs").find("#First");//首頁
var $last=$("div.pageDivs").find("#Last");//尾頁
if(parseInt(pageIndex)==1){
$first.css("display","none");
$button1.css("display","none");}
else{
$first.css("display","inline");
$button1.css("display","inline");
$first.attr("page",1);
$button1.attr("page",parseInt(pageIndex)-1);}
if(parseInt(pageIndex)==pageCount){
$button2.css("display","none");
$last.css("display","none");}
else{
$last.css("display","inline");
$button2.css("display","inline");
$last.attr("page",pageCount);
$button2.attr("page",parseInt(pageIndex) 1);}

}
////////////////////////////////span動態分頁左邊顯示的頁碼個數,右邊顯示的頁碼個數,要求limit>rlimit
function span(pageCount,pageIndex,limit,rlimit){
var isContinue=true;//指示是否繼續執行函數
var html="|";
var change=(parseInt(pageCount)-parseInt(rlimit))/(parseInt(limit)-2);//指示分頁碼可以變動的次數
if(pageCount!=0&&pageCount!=1){
if(pageCount for(var i=1; i html ="
" i ""}
}
else{
if(parseInt(pageIndex) for(var i=1; i html ="" i "";}
html ="...";
html =right(pageCount,limit,rlimit);
}
else{
if(parseInt(pageIndex)%(limit-2)==0){
if(parseInt(pageIndex)/(limit-2) for(var i=parseInt(pageIndex)-1; i html ="" i "";}
html ="...";
html =right(pageCount,limit,rlimit);
}
else{
for(var i=1; i html ="" i "";}
html ="...";
var rest=parseInt(pageCount)-parseInt(rlimit);
if(rest for(var i=parseInt(rlimit) 1; i html ="" i "";}
}
else{
var start=parseInt(pageCount)-parseInt(limit) 1;
for(var i=start; i html ="" i "";}
}
}


}
else{
html=$("div.pageDivs").html();
$("div.pageDivs").html(html);
isContinue=false;
}
}

}
}
if(isContinue){
html =">>|";
$("div.pageDivs").html(html);}
changeState(pageIndex,pageCount);
$("div.pageDivs").find("a[page=" parseInt(pageIndex) "]:visible").removeAttr("href").removeClass("disabled").addClass("current").siblings ("a[page:visible").removeClass("current").addClass("disabled").attr("href", "#");
}

function page(pageIndex){

/////////////這裡放你特定的資料顯示,使用ajax動態載入處理資料

pageCount="經由資料處理所得的頁數";

span(pageCount,pageIndex,7,2);//對分頁效果進行調用,這裡設定左邊顯示7個頁碼,右邊顯示2個頁碼。

}

///////////////////////////////為頁碼綁定事件

$("div.pageDivs").find("a:visible").live("click",function(){
var result=$(this).attr("page");
if((typeof $(this).attr("leaf"))!= 'undefined'){
$(this).removeAttr("href").removeClass("disabled").addClass("current").siblings().removeClass("current").addClass("disabled").attr("href", "#");}

page(result);
});
});


這樣就行了,以上分頁的演算法是可以封裝的,與具體的項目沒關係,可以通用。
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板