javascript分頁(yè)代碼(當(dāng)前頁(yè)碼居中)
更新時(shí)間:2012年09月20日 01:33:49 作者:
昨天看了妙味課堂的 分頁(yè)視頻教程,今天自己參照其思路,自己寫了下,并且自己新增了一個(gè)顯示頁(yè)碼個(gè)數(shù)的屬性 showPageNum
復(fù)制代碼 代碼如下:
function setPage(opt){
if(!opt.pageDivId || opt.allPageNum < opt.curpageNum || opt.allPageNum < opt.showPageNum){return false};
var allPageNum = opt.allPageNum; //總的頁(yè)數(shù)
var showPageNum = opt.showPageNum; //顯示的頁(yè)數(shù)
var curpageNum = opt.curpageNum; // 當(dāng)前的頁(yè)數(shù)
var pageDIvBox = document.getElementById(opt.pageDivId);
//左邊或右邊顯示頁(yè)碼的個(gè)數(shù)
var lrNum = Math.floor(showPageNum/2);
if(curpageNum>1){
var oA = document.createElement('a');
oA.href='#1';
oA.innerHTML = '首頁(yè)'
pageDIvBox.appendChild(oA);
}
if(curpageNum>1){
var oA = document.createElement('a');
oA.href='#'+(curpageNum-1);
oA.innerHTML = '上一頁(yè)'
pageDIvBox.appendChild(oA);
}
if(curpageNum<showPageNum-2 || allPageNum == showPageNum){
for(var i=1;i<=showPageNum;i++){
var oA = document.createElement('a');
oA.href = '#'+i;
if(curpageNum==i){
oA.innerHTML = i;
}else{
oA.innerHTML = "[" + i + "]";
}
pageDIvBox.appendChild(oA);
}
}else{
//倒數(shù)第一頁(yè)的處理
if(allPageNum-curpageNum<lrNum && curpageNum == allPageNum-1){
for(var i=1;i<=showPageNum;i++){
console.log((curpageNum - showPageNum + i));
var oA = document.createElement('a');
oA.href = '#'+ (curpageNum - (showPageNum-1) + i);
if(curpageNum == (curpageNum - (showPageNum-1) + i)){
oA.innerHTML = (curpageNum - (showPageNum-1) + i)
}else{
oA.innerHTML = '['+(curpageNum - (showPageNum-1) + i)+']'
}
pageDIvBox.appendChild(oA);
}
}
//最后一頁(yè)的處理
else if(allPageNum-curpageNum<lrNum && curpageNum == allPageNum){
for(var i=1;i<=showPageNum;i++){
console.log((curpageNum - showPageNum + i));
var oA = document.createElement('a');
oA.href = '#'+ (curpageNum - showPageNum + i);
if(curpageNum == (curpageNum - showPageNum + i)){
oA.innerHTML = (curpageNum - showPageNum + i)
}else{
oA.innerHTML = '['+(curpageNum-showPageNum + i)+']'
}
pageDIvBox.appendChild(oA);
}
}else{
for(var i=1;i<=showPageNum;i++){
var oA = document.createElement('a');
oA.href = '#'+ (curpageNum - (showPageNum-lrNum) + i);
if(curpageNum == (curpageNum - (showPageNum-lrNum) + i)){
oA.innerHTML = (curpageNum - (showPageNum-lrNum) + i)
}else{
oA.innerHTML = '['+(curpageNum - (showPageNum-lrNum) + i)+']'
}
pageDIvBox.appendChild(oA);
}
}
}
if(curpageNum<allPageNum){
for(var i=1;i<=2;i++){
if(i==1){
var oA = document.createElement('a');
oA.href='#'+(parseInt(curpageNum)+1);
oA.innerHTML = '下一頁(yè)'
}else{
var oA = document.createElement('a');
oA.href='#'+allPageNum;
oA.innerHTML = '尾頁(yè)'
}
pageDIvBox.appendChild(oA);
}
}
var oA = document.getElementsByTagName('a');
//給頁(yè)碼添加點(diǎn)擊事件
for(var i=0;i<oA.length;i++){
oA[i].onclick = function(){
//當(dāng)前點(diǎn)的頁(yè)碼
var sHref = this.getAttribute('href').substring(1);
//清空頁(yè)數(shù)顯示
pageDIvBox.innerHTML = '';
setPage({
pageDivId:'page',
showPageNum:5, //顯示的個(gè)數(shù)
allPageNum:10, //總頁(yè)數(shù)
curpageNum:sHref //當(dāng)前頁(yè)數(shù)
})
}
}
}
window.onload = function(){
setPage({
pageDivId:'page',
showPageNum:5, //顯示的個(gè)數(shù)
allPageNum:10, //總頁(yè)數(shù)
curpageNum:1 //當(dāng)前頁(yè)數(shù)
})
}
昨天看了妙味課堂的 分頁(yè)視頻教程,今天自己參照其思路,自己寫了下,并且自己新增了一個(gè)‘顯示頁(yè)碼個(gè)數(shù)'的屬性 ‘showPageNum';
下面對(duì)關(guān)鍵的幾個(gè)地方做個(gè)總結(jié):
1.點(diǎn)擊的當(dāng)前頁(yè)碼需要在顯示的頁(yè)碼中居中;
無(wú)論是顯示 3頁(yè) 5頁(yè) 7頁(yè) 9頁(yè)…… 等等
當(dāng)前頁(yè)要居中,可以推出一個(gè)公式
用顯的頁(yè)碼個(gè)數(shù)除以2 再取整,就可以得到左右需要顯的頁(yè)碼個(gè)數(shù)。這個(gè)對(duì)后面的分頁(yè)判斷很有用
var lrNum = Math.floor(showPageNum/2);
2.獲取頁(yè)碼
this.getAttribute('href') 用它可以得到相對(duì)路徑;this.href 用它只能得到絕對(duì)路徑
DEMO在線演示 http://demo.jb51.net/js/2012/js_page/
您可能感興趣的文章:
- js實(shí)現(xiàn)下一頁(yè)頁(yè)碼效果
- 某頁(yè)碼顯示的helper 少量調(diào)整,另附j(luò)s版
- javascript 支持頁(yè)碼格式的分頁(yè)類
- 原生js和jquery實(shí)現(xiàn)圖片輪播特效
- javascript結(jié)合CSS實(shí)現(xiàn)蘋果開關(guān)按鈕特效
- js實(shí)現(xiàn)圖片無(wú)縫滾動(dòng)特效
- 一個(gè)簡(jiǎn)單的JS鼠標(biāo)懸停特效具體方法
- js文字橫向滾動(dòng)特效
- js實(shí)現(xiàn)文字閃爍特效的方法
- 23個(gè)Javascript彈出窗口特效整理
- 兼容多瀏覽器的字幕特效Marquee的通用js類
- 純JS實(shí)現(xiàn)可用于頁(yè)碼更換的飛頁(yè)特效示例
相關(guān)文章
JS實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法分析
這篇文章主要介紹了JS實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法,結(jié)合實(shí)例形式分析了javascript字符串使用reverse方法、字符串遍歷方法以及針對(duì)輸入字符串的遍歷、逆序輸出等方法實(shí)現(xiàn)字符串反轉(zhuǎn)相關(guān)操作技巧,需要的朋友可以參考下2018-08-08JavaScript中的console.group()函數(shù)詳細(xì)介紹
這篇文章主要介紹了JavaScript中的console.group()函數(shù)詳細(xì)介紹,當(dāng)程序調(diào)試日志過(guò)多時(shí)會(huì)有些雜亂,此時(shí)可以使用console.group()函數(shù)調(diào)來(lái)分組顯示,需要的朋友可以參考下2014-12-12實(shí)例解析js中try、catch、finally的執(zhí)行規(guī)則
本文主要通過(guò)實(shí)例解析來(lái)更好的了解js中try、catch、finally的執(zhí)行規(guī)則,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02用Javascript實(shí)現(xiàn)錨點(diǎn)(Anchor)間平滑跳轉(zhuǎn)
本文介紹的方法,實(shí)現(xiàn)了錨點(diǎn)(Anchor)間平滑跳轉(zhuǎn),效果非常不錯(cuò)。2009-09-09JavaScript實(shí)現(xiàn)九宮格拖拽效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)九宮格拖拽效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06javascript for-in有序遍歷json數(shù)據(jù)并探討各個(gè)瀏覽器差異
這篇文章主要介紹了javascript for-in有序遍歷json數(shù)據(jù)并探討各個(gè)瀏覽器差異的相關(guān)資料,需要的朋友可以參考下2015-11-11JavaScript實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)表格某行時(shí)此行變色
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)表格某行時(shí)此行變色,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11