JavaScript實現(xiàn)列表分頁功能特效
最近寫了一個js分頁的方法,盡管已經(jīng)有現(xiàn)成的可以用,但還是想自己寫寫,搞搞清楚。最終實現(xiàn)的效果是:上一頁、第一頁、…(上n個頁碼)、n個頁碼、…(下n個頁碼)、最后一頁、下一頁。n可以是奇數(shù)也可以是偶數(shù),一般都喜歡取奇數(shù),星石調(diào)用的時候傳入的參數(shù)是5。寫的時候,主要注意了以下幾個地方:
頁碼等于1時,只顯示上一頁、第一頁、最后一頁,且都沒有跳轉(zhuǎn);
頁碼小于等于2時,不需要中間的n個頁碼;
頁碼小于等于n時,顯示所有頁碼,不顯示2個“…”;
2個“…”換頁時,換n個頁碼,如果接近最前面或最后面幾頁了,則顯示最前面或最后面n個頁碼。
下面貼出代碼,供大家探討:
//總頁數(shù),當前頁數(shù),跳轉(zhuǎn)地址,第一頁和最后一頁之間顯示的頁碼數(shù)量
function pageBar(tp,cp,url,pn){
var str = ‘<ul class=”page”>';
if(tp>1 && cp>1){
var prev = cp-1;
str += ‘<li><a class=”prev” title=”上一頁” href=”javascript:goPage(‘+prev+‘,\”+url+‘\');”><span>上一頁</span></a></li> ‘;
}else{
str += ‘<li><a class=”prev” title=”上一頁” href=”javascript:void(0);”><span>上一頁</span></a></li> ‘;
}
if(tp>1){
//第一頁
if(cp==1){
str +=‘<li class=”current”><a href=”javascript:goPage(1,\”+url+‘\');”><span>1</span></a></li> ‘;
}else{
str +=‘<li><a href=”javascript:goPage(1,\”+url+‘\');”><span>1</span></a></li> ‘;
}
if(tp>2){
var pnh = Math.floor(pn/2);
//循環(huán)開始頁碼
var s = cp-pnh;
if(s<=1){
s = 2;
}
//循環(huán)結(jié)束頁碼
var e = cp+pnh;
if(e>=tp){
e = tp-1;
}
if(s<=(1+pnh)){
if(tp>(pn+2)){
e = s+(pn-1);
if(e>=tp){
e = tp-1;
}
}else{
s = 2;
}
}
if(e>=(tp-pnh)){
if(tp>(pn+2)){
s = e-(pn-1);
if(s<=1){
s = 2;
}
}else{
e = tp-1;
}
}
if(e<s){
e = s;
}
//第一頁后的多頁跳轉(zhuǎn)
if(s>2){
var sp = cp-pn;
if(sp<1){
sp=1;
}
str += ‘<li><a name=”break” href=”javascript:goPage(‘+sp+‘,\”+url+‘\');”><span>…</span></a></li> ‘;
}
for(var i=s;i<=e;i++){
if(i==cp){
str += ‘<li class=”current”><a href=”javascript:goPage(‘+i+‘,\”+url+‘\');”><span>'+i+‘</span></a></li> ‘;
}else{
str += ‘<li><a href=”javascript:goPage(‘+i+‘,\”+url+‘\');”><span>'+i+‘</span></a></li> ‘;
}
}
//最后一頁前的多頁跳轉(zhuǎn)
if(e < (tp-1)){
var ep = cp+pn;
if(ep>tp){
ep=tp;
}
str += ‘<li><a name=”break” href=”javascript:goPage(‘+ep+‘,\”+url+‘\');”><span>…</span></a></li> ‘;
}
}
//最后一頁
if(cp==tp){
str +=‘<li class=”current”><a href=”javascript:goPage(‘+tp+‘,\”+url+‘\');”><span>'+tp+‘</span></a></li> ‘;
}else{
str +=‘<li><a href=”javascript:goPage(‘+tp+‘,\”+url+‘\');”><span>'+tp+‘</span></a></li> ‘;
}
}else{
str +=‘ <li class=”current”><a href=”javascript:void(0);”><span>1</span></a></li> ‘;
}
if(tp>1 && cp<tp){
var next = cp+1;
str += ‘<li><a class=”next” title=”下一頁” href=”javascript:goPage(‘+next+‘,\”+url+‘\');”><span>下一頁</span></a></li>';
}else{
str += ‘<li><a class=”next” title=”下一頁” href=”javascript:void(0);”><span>下一頁</span></a></li>';
}
str += ‘</ul>';
return str;
}
//跳轉(zhuǎn)頁碼,跳轉(zhuǎn)地址
function goPage(cp,url){
window.location.href = url+cp;
}
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
- js腳本分頁代碼分享(7種樣式)
- 純javascript實現(xiàn)分頁(兩種方法)
- ANGULARJS中使用JQUERY分頁控件
- JSP+EXt2.0實現(xiàn)分頁的方法
- JSP實現(xiàn)的簡單分頁示例
- 使用Jquery+Ajax+Json如何實現(xiàn)分頁顯示附JAVA+JQuery實現(xiàn)異步分頁
- JSP實現(xiàn)的簡單分頁顯示效果代碼
- JSP通用分頁框架
- jquery+json實現(xiàn)分頁效果
- jquery分頁插件jquery.pagination.js使用方法解析
- jquery分頁插件jquery.pagination.js實現(xiàn)無刷新分頁
- Angular.js與Bootstrap相結(jié)合實現(xiàn)表格分頁代碼
- js實現(xiàn)ajax分頁完整實例
- js多功能分頁組件layPage使用方法詳解
- 基于Vue.js的表格分頁組件
- 純JS前端實現(xiàn)分頁代碼
相關(guān)文章
Webpack學習之動態(tài)import原理及源碼分析
這篇文章主要為大家介紹了Webpack學習之動態(tài)import原理及源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04

