JavaScript模仿實驗室分頁組件__Java

來源:互聯網
上載者:User
原文摘自我的前端部落格,歡迎大家來訪問 http://hacke2.github.io
起因

剛才蔡哥讓我重啟一下鄰水專案服務器,我順便有回顧了一下去年做的項目。。當時我的工作是園區動態+組態管理,園區動態裡有個分頁 當時是拿實驗室以前項目:泛教育分頁組件做的,完全是拿來主義,現在看到,就像用javascript實現一下,沒什麼技術含量,設計思路也是 至少7年前的,直接一個a標籤開啟一個串連,將你的當前頁數傳到後台去。什麼時候再做一個AJAX的。 分析

鄰水分頁如下圖: 現在資料還不是很多,顯示了三條,而且有首頁、尾頁、上頁、下頁等輔助按鈕,噹噹前頁為第一個時,上頁和首頁成不可點擊狀。 噹噹前頁為最後一個時,下頁和尾頁成不可點擊狀。 還有以下規則: * 如果總頁數大於10且當前頁遠離總頁數(小於5),則顯示5個,後面的省略直到最後一個; * 總頁數大於10且當前頁接近總頁數(小於總頁數-3)則顯示後4個; * 除開上面兩個情況,顯示當前頁前後2頁 代碼

將page傳到後台去取資料,一頁顯示多少條也在後台弄吧,用a數組存a標籤,比字串拼接快很多,StringBuffer也是按照這個原理實現的。

function iPage(obj,count,curPage){  var href = 'article.do?page=';var obj=obj;var count=count;var curPage=curPage;var a=[];//總頁數少於10 全部顯示,大於10 顯示前3 後3 中間3 其餘....if(curPage == 1) {a.push('<a href="#" class="unclick" >首頁</a>');a.push('<a href="#" class="unclick" >上頁</a>');}else {a.push('<a href="' + href + 1 + '" >首頁</a>');a.push('<a href="' + href + (curPage-1) + '"  >上頁</a>');}//總頁數小於10if(count<=10){for(var i=1;i<=count;i++){createPage(i);}}else {if(curPage <= 4) {//總頁數大於10且當前頁遠離總頁數(小於5)for(var i = 1; i <=5; i++) {createPage(i);}a.push('...<a href="' + href + count + '">'+count+'</a>')}else if(curPage>=count-3){//總頁數大於10且當前頁接近總頁數(小於總頁數-3)a.push('<a href="' + href + 1 + '">1</a>');for(var i=count-4;i<=count;i++){createPage(i);}}else{ //除開上面兩個情況a.push('<a href="' + href + 1 + '">1</a>...');for(var i=curPage-2;i<=curPage+2;i++){createPage(i);}a.push('...<a href="' + href + count + '">'+count+'</a>');}}if(curPage==count){a.push('<a href="#" class="unclick">下頁</a>');a.push('<a href="#" class="unclick">尾頁</a>');}else{a.push('<a href="' + href + (curPage + 1) + '">下頁</a>');a.push('<a href="' + href + count + '">尾頁</a>');}obj.innerHTML=a.join("");//產生頁面function createPage(i){if(curPage==i){a.push('<a href="' + href + i + '" class="on">'+i+'</a>');}else{a.push('<a href="' + href + i + '" >'+i+'</a>');}}}
查看完整DEMO

end

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.