js實(shí)現(xiàn)前端分頁(yè)頁(yè)碼管理
用JS實(shí)現(xiàn)前端分頁(yè)頁(yè)碼管理,可以很美觀的區(qū)分頁(yè)碼顯示(這也是參考大多數(shù)網(wǎng)站的分頁(yè)頁(yè)碼展示),能夠有很好的用戶體驗(yàn),這也是有業(yè)務(wù)需要就寫(xiě)了一下,還是新手,經(jīng)驗(yàn)不足,歡迎指出批評(píng)!
首先先看效果圖:
這是初始頁(yè)面(也就是第一頁(yè))的界面,如果為第一頁(yè)時(shí),則首頁(yè)和上一頁(yè)按鈕不可用,為了展示分頁(yè)的效果,我當(dāng)前的分頁(yè)是一條一頁(yè)。

這是頁(yè)碼大于5頁(yè)時(shí)展示的效果:1,2頁(yè)始終始終顯示(考慮到用戶體驗(yàn))

這是最后一頁(yè)的效果圖:

下面直接上js代碼:
//頁(yè)碼顯示
$(function(){
var dqPage = $("#dqPage").text();//得到當(dāng)前頁(yè)數(shù)
dqPage = parseInt(dqPage);//得到的文本轉(zhuǎn)成int
var pageCount = $("#pageCount").text();//得到總頁(yè)數(shù)
pageCount = parseInt(pageCount);
var i = 1;
i = parseInt(i);
var item="";
var href = "這里是請(qǐng)求地址";
if (pageCount <= 5 ) {//總頁(yè)數(shù)小于五頁(yè),則加載所有頁(yè)
for (i; i <= pageCount; i++) {
if (i == dqPage) {
item += "<span class='disabled'>"+i+"</span>";
}else{
item += "<a href='"+href+i+"' >"+i+"</a>";
}
};
$('#pageBtn').append(item);
return;
}else if (pageCount > 5) {//總頁(yè)數(shù)大于五頁(yè),則加載五頁(yè)
if (dqPage < 5) {//當(dāng)前頁(yè)小于5,加載1-5頁(yè)
for (i; i <= 5; i++) {
if (i == dqPage) {
item += "<span class='disabled'>"+i+"</span>";
}else{
item += "<a href='"+href+i+"' >"+i+"</a>";
}
};
if (dqPage <= pageCount-2) {//最后一頁(yè)追加“...”代表省略的頁(yè)
item += "<span> . . . </span>";
}
$('#pageBtn').append(item);
return;
}else if (dqPage >= 5) {//當(dāng)前頁(yè)大于5頁(yè)
for (i; i <= 2; i++) {//1,2頁(yè)碼始終顯示
item += "<a href='"+href+i+"' >"+i+"</a>";
}
item += "<span> . . . </span>";//2頁(yè)碼后面用...代替部分未顯示的頁(yè)碼
if (dqPage+1 == pageCount) {//當(dāng)前頁(yè)+1等于總頁(yè)碼
for(i = dqPage-1; i <= pageCount; i++){//“...”后面跟三個(gè)頁(yè)碼當(dāng)前頁(yè)居中顯示
if (i == dqPage) {
item += "<span class='disabled'>"+i+"</span>";
}else{
item += "<a href='"+href+i+"' >"+i+"</a>";
}
}
}else if (dqPage == pageCount) {//當(dāng)前頁(yè)數(shù)等于總頁(yè)數(shù)則是最后一頁(yè)頁(yè)碼顯示在最后
for(i = dqPage-2; i <= pageCount; i++){//...后面跟三個(gè)頁(yè)碼當(dāng)前頁(yè)居中顯示
if (i == dqPage) {
item += "<span class='disabled'>"+i+"</span>";
}else{
item += "<a href='"+href+i+"' >"+i+"</a>";
}
}
}else{//當(dāng)前頁(yè)小于總頁(yè)數(shù),則最后一頁(yè)后面跟...
for(i = dqPage-1; i <= dqPage+1; i++){//dqPage+1頁(yè)后面...
if (i == dqPage) {
item += "<span class='disabled'>"+i+"</span>";
}else{
item += "<a href='"+href+i+"' >"+i+"</a>";
}
}
item += "<span> . . . </span>";
}
$('#pageBtn').append(item);
return;
}
}
});
<%-- 得到當(dāng)前頁(yè)--%>
<span id="dqPage" hidden="hidden" class="disabled1 current">${page}</span>
<%-- js控制的頁(yè)碼顯示在這個(gè)div中--%>
<div id="pageBtn" style="width: auto;display:inline-block !important;height: auto;">
</div>
這是實(shí)現(xiàn)js控制頁(yè)碼顯示的所有步驟,可能有點(diǎn)麻煩,后續(xù)會(huì)繼續(xù)優(yōu)化,當(dāng)然現(xiàn)在網(wǎng)上也有很多分頁(yè)插件,全憑個(gè)人喜好。
至于 “首頁(yè),上一頁(yè),下一頁(yè),末頁(yè),以及跳轉(zhuǎn)頁(yè),這些就看各自的需求實(shí)現(xiàn)了(我是用el表達(dá)式控制的)”
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
JS獲取子窗口中返回的數(shù)據(jù)實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇JS獲取子窗口中返回的數(shù)據(jù)實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05
博客側(cè)邊欄模塊跟隨滾動(dòng)條滑動(dòng)固定效果的實(shí)現(xiàn)方法(js+jquery等)
現(xiàn)在很多的獨(dú)立博客和網(wǎng)站如人人網(wǎng)等,都使用了讓側(cè)邊欄模塊隨滾動(dòng)條滑動(dòng)而位置固定的效果2013-03-03
學(xué)習(xí)JavaScript設(shè)計(jì)模式(鏈?zhǔn)秸{(diào)用)
這篇文章主要帶領(lǐng)大家學(xué)習(xí)JavaScript設(shè)計(jì)模式,其中重點(diǎn)介紹鏈?zhǔn)秸{(diào)用,感興趣的小伙伴們可以參考一下2015-11-11
跟我學(xué)習(xí)JScript的Bug與內(nèi)存管理
跟我學(xué)習(xí)JScript的Bug與內(nèi)存管理,小編對(duì)JScript的Bug與內(nèi)存管理也不甚了解,所以整理了本篇文章,希望可以解決大家學(xué)習(xí)時(shí)的困擾。2015-11-11
js 動(dòng)態(tài)生成html 觸發(fā)事件傳參字符轉(zhuǎn)義的實(shí)例
下面小編就為大家?guī)?lái)一篇js 動(dòng)態(tài)生成html 觸發(fā)事件傳參字符轉(zhuǎn)義的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
基于JS實(shí)現(xiàn)帶動(dòng)畫(huà)效果的流程進(jìn)度條
當(dāng)在使用流程的時(shí)候,比如有一個(gè)審核流程,有三個(gè)階段:開(kāi)始,審核中,審核成功。當(dāng)在不同的階段,做相應(yīng)的進(jìn)度顯示,當(dāng)顯示時(shí),是以動(dòng)畫(huà)的形式顯示的。下面通過(guò)代碼給大家介紹JS實(shí)現(xiàn)帶動(dòng)畫(huà)效果的流程進(jìn)度條,感興趣的朋友一起看看吧2018-06-06
nodejs創(chuàng)建web服務(wù)器之hello world程序
本文給大家分享nodejs創(chuàng)建web服務(wù)器之hello world程序,node真的很好用,不僅用v8引擎來(lái)解析了javascript外,還提供了高度優(yōu)化的應(yīng)用庫(kù),真的很好,有需要的朋友一起來(lái)學(xué)習(xí)吧2015-08-08

