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ù),當(dāng)前頁數(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)文章
html的DOM中document對象forms集合用法實例
這篇文章主要介紹了html的DOM中document對象forms集合用法,實例分析了forms集合的功能與使用技巧,需要的朋友可以參考下2015-01-01JS 對java返回的json格式的數(shù)據(jù)處理方法
下面小編就為大家?guī)硪黄狫S 對java返回的json格式的數(shù)據(jù)處理方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12