分頁欄的web標(biāo)準(zhǔn)實(shí)現(xiàn)
分頁欄是網(wǎng)頁上最常見不過的一個組件,本博文給出分頁欄的一個web2.0標(biāo)準(zhǔn)示例,并作簡要分析。本分頁欄的界面效果如下圖所示:
本分頁欄組件具有以下特性:
1、不論當(dāng)前頁碼是哪一個,分頁欄始終顯示第一頁的頁碼和最后一頁的頁碼(如上圖所示)。這樣,用戶不僅可以從最后的頁碼知道總共有多少頁,還能方便地在最后一頁和第一頁之間導(dǎo)航。
2、使展現(xiàn)的頁碼個數(shù)(省略符也算一個)始終固定,比如固定為9個。如下面兩個圖所示,當(dāng)前頁碼為1或9(或任意其他數(shù)字)時,展現(xiàn)的頁碼個數(shù)都為9個。這樣,下一頁按鈕的位置始終保持不變,在做Ajax分頁時,用戶可以在同一個位置多次點(diǎn)擊下一頁按鈕,而不會因?yàn)榘粹o位置發(fā)生變化而得移動鼠標(biāo),極大地提高了用戶體驗(yàn)。
3、通過接口參數(shù)可以方便地設(shè)置展現(xiàn)的頁碼個數(shù)。genPaginationHtml()接口的deviation(偏移量)參數(shù)用于設(shè)置當(dāng)前頁碼的左邊或右邊顯示的頁碼個數(shù)。所以,總共展現(xiàn)的頁碼個數(shù)等于2*deviation+1。比如,本示例中設(shè)置deviation為4,則總共展現(xiàn)9個頁碼。
請您動手注釋掉本示例以下源碼,然后從界面上比較注釋前后兩者的區(qū)別。您還可以比較一下Google的分頁行為,您會發(fā)現(xiàn)其行為就是注釋掉本示例以下代碼后的行為。在編寫本示例的時候我研究了Google的分頁行為,然后再逐步演變擴(kuò)展。
//使總碼數(shù)固定
if (curPage - startNum < deviation) {
endNum += deviation - (curPage - startNum);
endNum = endNum > pagesCount ? pagesCount : endNum;
}
if (endNum - curPage < deviation) {
startNum -= deviation - (endNum - curPage);
startNum = startNum < 1 ? 1 : startNum;
};
最后給出genPaginationHtml(rowsCount, pageSize, curPage, toPage, deviation)接口參數(shù)說明如下:
rowsCount(number):記錄總數(shù)。
pageSize(number):每頁顯示的記錄數(shù)。
curPage(number):當(dāng)前頁頁碼。
toPage(string):一個函數(shù)名,實(shí)現(xiàn)跳到指定頁的邏輯。
deviation(number):當(dāng)前頁碼的左邊或右邊顯示的頁碼個數(shù)。
分頁欄示例下載
相關(guān)文章
JScript 腳本實(shí)現(xiàn)文件下載 一般用于下載木馬
腳本實(shí)現(xiàn)文件下載,這個是jscript的,腳本之家以前曾發(fā)布vbscript版本的,原理一樣的。2009-10-10Javascript中prototype與__proto__的關(guān)系詳解
這篇文章主要給大家介紹了關(guān)于Javascript中prototype與__proto__的關(guān)系的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03利用js實(shí)現(xiàn)前臺動態(tài)添加文本框,后臺獲取文本框內(nèi)容(示例代碼)
這篇文章主要是對利用js實(shí)現(xiàn)前臺動態(tài)添加文本框,后臺獲取文本框內(nèi)容的示例代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11mui js控制開關(guān)狀態(tài)、修改switch開關(guān)的值方法
今天小編就為大家分享一篇mui js控制開關(guān)狀態(tài)、修改switch開關(guān)的值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09