JavaScript - 分頁
前言:
參考資料的作者分享的 以Javascript方式,撰寫出分頁功能。
經研究後,覺得相當好理解。因此整理於此,紀錄一下。
參考資料:
參考資料的作者分享的 以Javascript方式,撰寫出分頁功能。
經研究後,覺得相當好理解。因此整理於此,紀錄一下。
參考資料:
![]() |
| - 分頁樣式 - |
css 代碼
#setpage a:link,#setpage a:visited,#setpage a:hover,.current,#info{
border:1px solid #DDD;
background:#F2F2F2;
display:inline-block;
margin:1px;
text-decoration:none;
font-size:15px;
width:width:auto;
height:width:auto;
text-align:center;
line-height:15px;
color:#AAA;
padding:1px 2px;
}
.current{
border:1px solid #83E7E4;
background:#DFF9F8;
margin:1px;
color:#27CBC7;
}
#info{
width:auto;
}
html 代碼
<div id="setpage"></div>
js 代碼
//分頁
var totalpage = 25 ; //查詢資料總筆數(假設有25筆資料)
var pagesize = 5 ; //頁數區塊呈現頁數數量(一次5頁)
var cpage = 1; //當前頁數,預設初始為 1
var count; //
var outstr = ""; //pagesize 的頁數串聯 by HTML,再置入指定 class
setpage(); //組合分頁的function,放在產生分頁的情況下
function gotopage(target){
cpage = target; //把頁面計數定位到第幾頁
setpage();
}
function setpage() {
if(totalpage<=pagesize){ //總頁數小於 pagesize
for (count=1;count<=totalpage;count++) {
if(count!=cpage){
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+count+")'>"+count+"</a>";
}else{
outstr = outstr + "<span class='current' >"+count+"</span>";
}
}
}
if(totalpage>pagesize){ //總頁數大於 pagesize
if(parseInt((cpage-1)/pagesize) == 0) {
for (count=1;count<=pagesize;count++) { if(count!=cpage){
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+count+")'>"+count+"</a>";
}else{
outstr = outstr + "<span class='current'>"+count+"</span>";
}
}
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+count+") '> 下頁 </a>"; //下頁
}
else if(parseInt((cpage-1)/pagesize) == parseInt(totalpage/pagesize)) {
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+(parseInt((cpage-1)/pagesize)*pagesize)+")'> 上頁 </a>"; //上頁
for (count=parseInt(totalpage/pagesize)*pagesize+1;count<=totalpage;count++) { if(count!=cpage){
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+count+")'>"+count+"</a>";
}else{
outstr = outstr + "<span class='current'>"+count+"</span>";
}
}
}
else{
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+(parseInt((cpage-1)/pagesize)*pagesize)+")'> 上頁 </a>"; //上頁
for (count=parseInt((cpage-1)/pagesize)*pagesize+1;count<=parseInt((cpage-1)/pagesize)*pagesize+pagesize;count++){
if(count!=cpage) {
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+count+")'>"+count+"</a>";
}else{
outstr = outstr + "<span class='current'>"+count+"</span>";
}
}
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+count+")'> 下頁 </a>"; //下頁
}
}
document.getElementById("setpage").innerHTML = outstr ;
outstr = "";
}
卒仔〞筆記 : 每點擊一次分頁數字,都會重新組合一次分頁條。
影響區塊僅於"分頁條", 資料撈取可於 查找 「cpage 」當前頁數~
在額外進行資料撈取~
p.s : 以openData來舉例:
var pageListNum = 10; //每頁資料為10筆
var pageSkipNum ; //跳過筆數
cpage = 4 //當前頁數
公式 : pageSkipNum = (cpage - 1) * pageListNum;
結論 : 當第四頁時,跳過30筆從31筆開始撈取,在撈取10筆~

沒有留言:
張貼留言