亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JQuery的Pager分頁器實現代碼

2019-11-20 10:10:29
字體:
來源:轉載
供稿:網友

本文實例為大家分享了JQuery的Pager分頁器的具體實現代碼,供大家參考,具體內容如下

效果圖:

代碼:

html代碼:

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>分頁器</title> <link href="pager.css" rel="stylesheet"/></head><body> <div id="pager"></div> <script src="pager.js"></script> <script> function doChangePage(obj){  //TO DO } var pagerBox = document.getElementById('pager'); var pager = new Pager({  index: 1,  total: 15,  parent: pagerBox,  onchange: doChangePage }); </script></body></html>

css代碼:

.pager-box:after{ display:block; height:0; visibility:hidden; clear:both; content:'';}.pager{ float:left; position:relative; left:50%; font-family:微軟雅黑;}.pager a,.pager span{ position:relative; left:-50%; display:block; float:left; margin-left:5px; border:1px solid #b6bcc1; padding: 5px 10px; text-decoration:none; color:#b6bcc1; border-radius:3px;}.pager span{ border:0;}.pager a.js-selected{ background:#b6bcc1; color:#fff; cursor:default;}.pager a.js-disabled{ background:#f1f1f1; border-color:#f1f1f1; cursor:default; color:#fff;}

pager.js代碼

(function(window, undefined){ /** * 創建元素節點并返回 */ function create(tagName, className, parent){ var element = document.createElement(tagName); element.className = className; parent.appendChild(element); return element; } /** * 數組消除重復 */ function clearRepeat(arr){ var obj = {},  result = []; for(var i = 0, len = arr.length; i < len; i++){  obj[arr[i]] = 1; } for(var i in obj){  result.push(i); } return result; } /** * 添加類名 */ function addClassName(element, className){ var aClass = element.className.split(' '); aClass.push(className); aClass = clearRepeat(aClass); element.className = aClass.join(' '); } /** * 刪除類名 */ function delClassName(element, className){ var aClass = element.className.split(' '),  index = aClass.indexOf(className); if(index > 0) aClass.splice(index, 1); element.className = aClass.join(' '); } /** * 檢查是否含有類名 * @param element * @param className * @returns {boolean} */ function hasClassName(element, className){ var aClass = element.className.split(' '),  index = aClass.indexOf(className); if(index > 0) return true; return false; } var Pager = function(obj){ this.__total = obj.total || 1; this.__index = obj.index || 1; this.__parent = obj.parent; this.__onchange = obj.onchange; //初始化分頁器 this.__init(obj); }; var pro = Pager.prototype; /** * 初始化分頁器 */ pro.__init = function(obj){ if(this.__total < this.__index) return; //存儲數字 this.__numbers = []; //儲存省略號 this.__dots = []; this.__wrapper = create('div', 'pager-box', this.__parent); this.__body = create('div', 'pager', this.__wrapper); //存儲上一頁 this.__preBtn = create('a', 'prev', this.__body); this.__preBtn.href = 'javascript:void(0);'; this.__preBtn.innerText = (obj.label && obj.label.prev) || '上一頁'; //存儲數字 if(this.__total < 8){  for(var i = 0; i < this.__total; i++){  var t = create('a', 'number', this.__body);  t.href = 'javascript:void(0);';  t.innerText = i + 1;  this.__numbers.push(t);  } }else{  for(var i = 0; i < 2; i++){  var t = create('span', 'dots', this.__body);  t.innerText = '...';  this.__dots.push(t);  };  for(var i = 0; i < 7; i++){  var t = create('a', 'number', this.__body);  t.href = 'javascript:void(0);';  this.__numbers.push(t);  } } //存儲下一頁 this.__nextBtn = create('a', 'next', this.__body); this.__nextBtn.href = 'javascript:void(0);'; this.__nextBtn.innerText = (obj.label && obj.label.next) || '下一頁'; // this._$setIndex(this.__index); // this.__body.onclick = this.__doClick.bind(this); }; pro.__doClick = function(e){ var e = e || window.event,  target = e.target || e.srcElement; //點擊省略號 if(target.tagName.toLowerCase() == 'span') return; //點擊了不能點擊的上一頁或者下一頁 if(hasClassName(target, 'js-disabled')) return; //點擊了當前頁 if(hasClassName(target, 'js-selected')) return; if(target == this.__preBtn){  //點擊了上一頁  this._$setIndex(this.__index - 1); }else if(target == this.__nextBtn){  //點擊了下一頁  this._$setIndex(this.__index + 1); }else{  //點擊了數字  var index = target.innerText;  this._$setIndex(index); } }; /** * 跳轉頁數 */ pro._$setIndex = function(index){ index = parseInt(index); //更新信息 if(index != this.__index){  this.__last = this.__index;  this.__index = index; } //處理 delClassName(this.__preBtn, 'js-disabled'); delClassName(this.__nextBtn, 'js-disabled'); if(this.__total < 8){  //總頁數小于8的情況  if(this.__last) delClassName(this.__numbers[this.__last - 1], 'js-selected');  addClassName(this.__numbers[this.__index - 1], 'js-selected');  if(this.__index == 1) addClassName(this.__preBtn, 'js-disabled');  if(this.__index == this.__total) addClassName(this.__nextBtn, 'js-disabled'); }else{  this.__dots[0].style.display = 'none';  this.__dots[1].style.display = 'none';  for(var i = 0; i < 7; i++){  delClassName(this.__numbers[i], 'js-selected');  };  if(this.__index < 5){  for(var i = 0; i < 6; i++){   this.__numbers[i].innerText = i + 1;  }  this.__numbers[6].innerText = this.__total;  this.__dots[1].style.display = 'block';  this.__body.insertBefore(this.__dots[1], this.__numbers[6]);  addClassName(this.__numbers[this.__index - 1], 'js-selected');  if(this.__index == 1) addClassName(this.__preBtn, 'js-disabled');  }else if(this.__index > this.__total - 4){  for(var i = 1; i < 7; i++){   this.__numbers[i].innerText = this.__total + i -6;  }  this.__numbers[0].innerText = '1';  this.__dots[0].style.display = 'block';  this.__body.insertBefore(this.__dots[0], this.__numbers[1]);  addClassName(this.__numbers[this.__index + 6 - this.__total], 'js-selected');  if(this.__index == this.__total) addClassName(this.__nextBtn, 'js-disabled');  }else{  this.__numbers[0].innerText = '1';  for(var i = 1; i < 6; i++){   this.__numbers[i].innerText = this.__index - 3 + i;   if(i == 3) addClassName(this.__numbers[i], 'js-selected');  }  this.__numbers[6].innerText = this.__total;  this.__dots[0].style.display = 'block';  this.__body.insertBefore(this.__dots[0], this.__numbers[1]);  this.__dots[1].style.display = 'block';  this.__body.insertBefore(this.__dots[1], this.__numbers[6]);  } } if(typeof this.__onchange == 'function'){  this.__onchange({  index: this.__index,  last: this.__last,  total: this.__total  }) } }; /** * 得到總頁數 */ pro._$getIndex = function(){ return this.__index; }; /** * 得到上一個頁數 */ pro._$getLast = function(){ return this.__last; }; //變成全局 window.Pager = Pager;})(window);

主要思路:

分頁器共分為以下4種情況:

情況1,當total < 8 時,所有的頁碼全部顯示。

情況2,當total >= 8 且 index < 5時,顯示1-6和最后一頁。

情況3,當total >= 8 且 index > total - 4時,顯示1和最后6項。

情況4,當total >= 8 且 5 <= index <= total - 4時,顯示1和最后一頁,和中間5項。

Pager類實例化時傳入一個設置對象:

{ parent: element, //給分頁器設置父節點 index: index, //設置當前頁 total: total, //設置總頁數 onchange: function(){} //頁數變化回調函數}

當我們實例化Pager時,執行Pager函數體內的語句,首先賦值,然后就執行初始化函數:

var Pager = function(obj){ //賦值 this.__total = obj.total || 1; this.__index = obj.index || 1; this.__parent = obj.parent; this.__onchange = obj.onchange; //初始化分頁器 this.__init(obj);};

初始化函數this.__init結構:

Pager.prototype.__init = function(obj){ (根據上面分析的情況進行處理) ... this._$setIndex(this.__index); //跳轉到初始頁 //綁定分頁器點擊函數 this.__body.onclick = this.__doClick.bind(this);};

初始化完成,點擊后就會做出相應的判斷,并使用this._$setIndex(index)進行跳轉。

更多關于分頁教程的文章,請查看以下專題:

javascript分頁功能操作
jquery分頁功能操作
php分頁功能操作
ASP.NET分頁功能操作

下載:paper

以上就是本文的全部內容,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲美女中文字幕| 国产精品久久久久久久久久| 国产精品视频色| 国产成人精品视频在线| 欧美俄罗斯乱妇| 日韩极品精品视频免费观看| 国产精品丝袜高跟| 日韩成人av在线| 精品福利在线观看| 久久国产精品久久久久久| 欧美丰满片xxx777| 伊人伊人伊人久久| 欧美电影免费观看大全| 欧美日韩电影在线观看| 国产成人91久久精品| 欧美体内谢she精2性欧美| 国产香蕉精品视频一区二区三区| 亚洲va欧美va国产综合剧情| 日韩国产激情在线| 亚洲国产成人久久综合| 95av在线视频| 亚洲精品www| 精品网站999www| 国产精品爱久久久久久久| 51ⅴ精品国产91久久久久久| 国产精品对白刺激| 久久激情视频久久| 国产精品揄拍500视频| 国产精品日韩精品| 欧美日在线观看| 久久久久久久久久久网站| 亚洲免费一在线| 久久久在线免费观看| 亚洲大胆人体视频| 欧美日韩中文在线观看| 成人精品在线视频| 亚洲夜晚福利在线观看| 亚洲第一福利在线观看| 日韩经典中文字幕在线观看| 色综合久久悠悠| 成人亚洲欧美一区二区三区| 亚洲专区在线视频| 久久国产精品影片| 中文字幕少妇一区二区三区| 亚洲成人av在线播放| 欧美有码在线观看视频| 成人日韩av在线| 在线视频亚洲欧美| 国产精品男女猛烈高潮激情| 欧美制服第一页| 欧美在线视频观看免费网站| 久久久天堂国产精品女人| 日韩av色综合| 国自在线精品视频| 日韩中文字幕在线播放| 亚洲第一在线视频| 国产精品第8页| 日韩网站免费观看| 国产成人啪精品视频免费网| 国产999精品久久久| 日韩av一区在线| 国产精品成人观看视频国产奇米| 成人欧美在线观看| 久久这里只有精品视频首页| 亚洲系列中文字幕| 日韩在线视频国产| 亚洲国产一区二区三区在线观看| 久久精品小视频| 日韩免费在线免费观看| 亚洲丁香婷深爱综合| 中文字幕日韩欧美| 欧美午夜视频一区二区| 在线电影欧美日韩一区二区私密| 亚洲综合成人婷婷小说| 国产亚洲精品高潮| 91色在线视频| 亚洲成人精品在线| 亚洲а∨天堂久久精品9966| 中文字幕在线看视频国产欧美在线看完整| 91手机视频在线观看| 久久香蕉精品香蕉| 欧美日韩第一视频| 91亚洲午夜在线| 亚洲图中文字幕| 国产精品高清在线| 97超级碰在线看视频免费在线看| 日韩在线视频观看正片免费网站| 久久视频国产精品免费视频在线| 最近2019年日本中文免费字幕| 成人情趣片在线观看免费| 国产成人福利夜色影视| 国产成人精品久久二区二区91| 日韩在线欧美在线国产在线| 久久精品视频免费播放| 久久99热精品这里久久精品| 久久久久久久电影一区| 国产成人精品最新| 国产欧美va欧美va香蕉在| 亚洲一区二区久久久久久久| 亚洲精品按摩视频| 日韩av大片在线| 久久久精品国产一区二区| 欧美日韩一区免费| 久久精品福利视频| 国产精品自拍小视频| 久久影院免费观看| 日韩高清电影免费观看完整版| 成人在线精品视频| 国产欧美日韩中文字幕| 国产日本欧美一区二区三区在线| 亚洲欧美制服另类日韩| 久久久久久国产精品三级玉女聊斋| 91色视频在线观看| 日本道色综合久久影院| 久久青草精品视频免费观看| 亚洲a中文字幕| 成人精品一区二区三区电影免费| 欧美影院成年免费版| 国产精品成人免费电影| 亚洲va久久久噜噜噜久久天堂| 精品成人在线视频| 136fldh精品导航福利| 91色在线观看| 97视频在线观看成人| 97久久伊人激情网| 欧美激情欧美狂野欧美精品| 91最新在线免费观看| 欧美性猛交xxxx富婆| 日本高清+成人网在线观看| 亚洲qvod图片区电影| 国产成人精品网站| 亚洲欧洲av一区二区| 欧美韩国理论所午夜片917电影| 中文字幕精品av| 亚洲成年人影院在线| 日韩中文字幕视频| 午夜精品久久久久久久久久久久| 成人日韩在线电影| 色婷婷**av毛片一区| 亚洲码在线观看| 精品国产31久久久久久| 亚洲一区二区三区在线免费观看| 日韩欧美中文字幕在线播放| 亚洲激情视频网站| 亚洲一区二区久久| 欧美亚州一区二区三区| 欧美大片在线看免费观看| 91免费人成网站在线观看18| 久久久久久香蕉网| 日韩成人av网址| 538国产精品一区二区免费视频| 亚洲高清福利视频| 日韩av日韩在线观看| 亚洲国产成人91精品| 亚洲色图第三页| 日韩欧美在线免费| 国产精品电影网站| 日韩欧美在线视频免费观看| 日韩成人xxxx| 国产精品嫩草影院一区二区| 欧美三级免费观看| 欧美极品少妇全裸体| 久久影视电视剧免费网站| 中文字幕自拍vr一区二区三区|