JavaScript數字分頁效果詳解
更多分頁效果可以參閱分頁程式碼模組。
下面分享一個js實現的數字分頁程式碼,並詳細介紹一下它的實現過程。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> div, ul, li, body { margin: 0; padding: 0; font-size: 12px; } #containet { display: inline-block; border: 1px solid #e1dede; padding: 19px; margin: auto; } #pageMain li { list-style: none; line-height: 22px; } #pageBox { padding: 10px 0 0 0; } #pageBox span { display: inline-block; width: 60px; height: 24px; line-height: 24px; text-align: center; color: #fff; background: #08a586; } #pageNav { display: inline-block; } #pageNav a { display: inline-block; width: 24px; height: 24px; line-height: 24px; text-align: center; color: #08a586; text-decoration: none; } #pageNav a.active, #pageNav a:hover { background: #08a586; color: #fff; } </style> <script> window.onload = function() { tabPage({ pageMain: 'pageMain', pageNav: 'pageNav', pagePrev: 'prev', pageNext: 'next', curNum: 7, activeClass: 'active', ini: 0 }); function tabPage(tabPage) { var pageMain = document.getElementById(tabPage.pageMain); var pageNav = document.getElementById(tabPage.pageNav); var pagePrev = document.getElementById(tabPage.pagePrev); var pageNext = document.getElementById(tabPage.pageNext); var curNum = tabPage.curNum; var len = Math.ceil(pageMain.children.length / curNum); var pageList = ''; var iNum = 0; for (var index = 0; index < len; index++) { pageList += '<a href="javascript:;">' + (index + 1) + '</a>'; } pageNav.innerHTML = pageList; pageNav.children[0].className = tabPage.activeClass; for (var index = 0; index < pageNav.children.length; index++) { pageNav.children[index].index = index; pageNav.children[index].onclick = function() { for (var t = 0; t < pageNav.children.length; t++) { pageNav.children[t].className = ''; } this.className = tabPage.activeClass; iNum = this.index; ini(iNum); }; } //下一頁 pageNext.onclick = function() { if (iNum == len - 1) { alert('已經是最後一頁'); return false; } else { for (var t = 0; t < pageNav.children.length; t++) { pageNav.children[t].className = ''; } iNum++; pageNav.children[iNum].className = tabPage.activeClass; ini(iNum); } }; //上一頁 pagePrev.onclick = function() { if (iNum == 0) { alert('當前是第一頁'); return false; } else { for (var t = 0; t < pageNav.children.length; t++) { pageNav.children[t].className = ''; } iNum--; pageNav.children[iNum].className = tabPage.activeClass; ini(iNum); } }; function ini(iNum) { for (var index = 0; index < pageMain.children.length; index++) { pageMain.children[index].style.display = 'none'; } for (var index = 0; index < curNum; index++) { if (pageMain.children[(iNum * curNum + index)] == undefined) { break; } pageMain.children[(iNum * curNum + index)].style.display = 'block'; } } ini(iNum); } }; </script> </head> <body> <div id="containet"> <ul id="pageMain"> <li>螞蟻部落歡迎您 第1條</li> <li>螞蟻部落歡迎您 第2條</li> <li>螞蟻部落歡迎您 第3條</li> <li>螞蟻部落歡迎您 第4條</li> <li>螞蟻部落歡迎您 第5條</li> <li>螞蟻部落歡迎您 第6條</li> <li>螞蟻部落歡迎您 第7條</li> <li>螞蟻部落歡迎您 第8條</li> <li>螞蟻部落歡迎您 第9條</li> <li>螞蟻部落歡迎您 第10條</li> <li>螞蟻部落歡迎您 第11條</li> <li>螞蟻部落歡迎您 第12條</li> <li>螞蟻部落歡迎您 第13條</li> <li>螞蟻部落歡迎您 第14條</li> <li>螞蟻部落歡迎您 第15條</li> <li>螞蟻部落歡迎您 第16條</li> <li>螞蟻部落歡迎您 第17條</li> <li>螞蟻部落歡迎您 第18條</li> <li>螞蟻部落歡迎您 第19條</li> <li>螞蟻部落歡迎您 第20條</li> <li>螞蟻部落歡迎您 第21條</li> <li>螞蟻部落歡迎您 第22條</li> <li>螞蟻部落歡迎您 第23條</li> <li>螞蟻部落歡迎您 第24條</li> <li>螞蟻部落歡迎您 第25條</li> <li>螞蟻部落歡迎您 第26條</li> <li>螞蟻部落歡迎您 第27條</li> <li>螞蟻部落歡迎您 第28條</li> <li>螞蟻部落歡迎您 第29條</li> <li>螞蟻部落歡迎您 第30條</li> </ul> <div id="pageBox"> <span id="prev">上一頁</span> <ul id="pageNav"></ul> <span id="next">下一頁</span> </div> </div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).window.onload = function() {},當文件內容完全載入完畢再去執行函式中的程式碼。
(2).tabPage({
pageMain: 'pageMain',
pageNav: 'pageNav',
pagePrev: 'prev',
pageNext: 'next',
curNum: 7,
activeClass: 'active',
ini: 0
})
為tabpage()方法傳遞一個配置物件。
pageMain規定內容容器的id屬性值;pageNav分頁容器的id屬性值;
pagePrev規定上一頁按鈕的id屬性值;pageNext下一頁按鈕的id屬性值;curNum規定每一頁的內容數目。
activeClass規定當前頁面數字按鈕的樣式類。
(3).function tabPage(tabPage) {},此方法實現了分頁功能,引數是一個配置物件。
(4).var pageMain = document.getElementById(tabPage.pageMain);
var pageNav = document.getElementById(tabPage.pageNav);
var pagePrev = document.getElementById(tabPage.pagePrev);
var pageNext = document.getElementById(tabPage.pageNext);
獲取對應id屬性值的元素物件。
(5).var curNum = tabPage.curNum,將每一頁的數目賦值給變數curNum。
(6).var len = Math.ceil(pageMain.children.length / curNum),計算出有多少頁,進行上舍入操作。
(7).var pageList = '',分頁字串。
(8).var iNum = 0,宣告一個變數並賦值為0,後面用到。
(9).for (var index = 0; index < len; index++) {
pageList += '<a href="javascript:;">' + (index + 1) + '</a>';
},生成分頁字串,也就是1、2、3等分頁字串。
(10).pageNav.innerHTML = pageList,將字串寫入對應容器。
(11).pageNav.children[0].className = tabPage.activeClass,設定預設第一頁為綠色狀態。
(12).for (var index = 0; index < pageNav.children.length; index++) {},通過for迴圈批量註冊事件處理函式。
(13).pageNav.children[index].index = index,為當前數字頁按鈕元素自頂一個index屬性並賦值為當前索引值。
(14).pageNav.children[index].onclick = function() {},為當前數字按鈕註冊onclick事件處理函式。
(15).for (var t = 0; t < pageNav.children.length; t++) {
pageNav.children[t].className = '';
},清空所以數字按鈕的樣式類,也就是首先將所有的按鈕綠色去掉。
(16).this.className = tabPage.activeClass,然後將當前點選的數字按鈕設定為背景綠色。
(17).iNum = this.index,將索引值賦值給變數iNum。
(18).ini(iNum),顯示對應頁的內容。
(19).pageNext.onclick = function() {},為按鈕註冊事件處理函式,點選可以顯示下一頁。
(20).if (iNum == len - 1) {
alert('已經是最後一頁');
return false;
},如果iNum等於len-1,那麼說明已經是最後一頁了,那麼就彈出提示,並且跳出函式。
(21).else {
for (var t = 0; t < pageNav.children.length; t++) {
pageNav.children[t].className = '';
}
iNum++;
pageNav.children[iNum].className = tabPage.activeClass;
ini(iNum);
},首先清空所有按鈕的綠色背景。
然後inum加1,然後呼叫ini()函式進入下一頁內容。
(22).function ini(iNum) {},顯示對應頁次的內容,引數是對應的頁次索引(從0開始的)。
(23).for (var index = 0; index < pageMain.children.length; index++) {
pageMain.children[index].style.display = 'none';
},首先隱藏所有的內容。
(24).for (var index = 0; index < curNum; index++) {
if (pageMain.children[(iNum * curNum + index)] == undefined) {
break;
}
pageMain.children[(iNum * curNum + index)].style.display = 'block';
},通過for迴圈顯示對應頁次的內容。
break的作用是當沒有指定索引的內容的時候,就直接跳出for迴圈,所以已經沒有再多的內容頁。
比如最後一頁,只有兩個內容,迴圈玩兩次以後,就可以結束迴圈了。
二.相關閱讀:
(1).children屬性可以參閱javascript children一章節。
(2).Math.ceil()可以參閱javascript Math.ceil()一章節。
(3).className可以參閱js className一章節。
(4).break可以參閱javascript break與continue一章節。
相關文章
- PbootCMS實現數字條分頁樣式效果boot
- JavaScript 打字機效果詳解JavaScript
- JavaScript 秒錶效果詳解JavaScript
- JavaScript抽獎效果詳解JavaScript
- JavaScript 雪花飄舞效果詳解JavaScript
- JavaScript省市級聯效果詳解JavaScript
- JavaScript數字上下翻動變化詳解JavaScript
- JavaScript彈幕效果程式碼詳解JavaScript
- ElasticSearch 深度分頁詳解Elasticsearch
- jQuery星級評分效果詳解jQuery
- JavaScript 動態進度條效果詳解JavaScript
- JavaScript自動更新時間效果詳解JavaScript
- JavaScript焦點圖輪播效果詳解JavaScript
- JavaScript數字和字母組合驗證碼詳解JavaScript
- CSS3具有3D立體效果的數字分頁CSSS33D
- JavaScript動態圓形鐘錶效果詳解JavaScript
- JavaScript 頁面跳轉效果JavaScript
- jQuery 倒數計時效果詳解jQuery
- 分頁機制圖文詳解
- 滑鼠劃過星級評分效果詳解
- JavaScript物件導向修改標籤頁詳解JavaScript物件
- 彈性效果網頁右側浮動框詳解網頁
- 【JS】javascript實現頁面顯示數字時鐘JSJavaScript
- 24-PHP+MySQL分頁技術詳解PHPMySql
- JavaScript 搜尋關鍵字高亮效果JavaScript
- 分頁實現前臺後臺不同效果,分頁類引入
- Python print函式引數詳解以及效果展示Python函式
- anime.js 網頁動畫庫,輕鬆實現網頁數字滾動效果JS網頁動畫
- JavaScript this詳解JavaScript
- JavaScript數字千分位格式化JavaScript
- [譯] 數字貨幣錢包詳解
- 使用Mybatis-plus進行分頁查詢,沒有分頁效果,查詢的資料量超出每頁數量設定MyBatis
- JavaScript變數與資料型別詳解JavaScript變數資料型別
- vue+Element-ui實現分頁效果VueUI
- 教你如何使用MvcPager實現分頁效果MVC
- jQuery彈幕效果詳解jQuery
- jQuery 放大鏡效果詳解jQuery
- 詳解JavaScript原型JavaScript原型