基于客户端的分页导航(1)
思路:用纯JS的方法,只能通过判断当前页面的文件名,然后算出上下页地址,首页和尾页需要在脚本中配置好,最后生成导航代码。用数据绑定的方法则要简单得多,设定dataPageSize,然后用 firstPage() 、previousPage() 、nextPage() 和 lastPage() 方法翻页。
6 e3 I+ U& s' v0 l6 Z& B, r
# R3 L6 b6 P% A7 K: |2 S4 \, r4 n- U$ F 代码示例:/ L+ `5 x' N! z# r6 R1 w' T# S( J) [8 A
5 Q' E7 U c* l T/ D
1. 纯JS的,翻页导航的依据是文件名 page.js脚本文件代码
p9 `6 [) z5 J/ u# K3 r. T& [# [. ^. V l
Number.prototype.add0 = function(){ //对数字类型的扩展,主要用于实现当数字小于一定位数时在前面补0,直到倍数达到为止
& K, y$ ^- h5 n) Z7 K creturn (new Array(len).join("0") this).slice(-len) //返回字符串,new Array(len).join("0")得到len个相连的"0",然后和数字相加,再从得到的字符串右边起向左截取len位
4 P6 b; |* j# @5 v4 P}
8 F: I# H L* c+ v" o* p: [3 lString.prototype.mlink = function(n){ //对字符类型的扩展,主要用于根据文件名中的数字生成链接
2 k- c1 m3 A2 u, L) breturn this.link(prefix n.add0() suffix) //返回一个以字符串为链接文字,prefix n.add0() subffix为链接地址的HTML代码* Y& A/ ?8 \3 k' w; \( W" a# ?
}
/ y) i" B9 ~9 m6 M0 w6 m4 vvar prefix = "page" //文件名前缀7 s3 X/ M* j K
var suffix = ".htm" //文件名后缀
% Z+ ~) ^ M \0 ^$ @' u* ?var first = 1 //第一页的文件名中的数字4 B1 K% J" b1 C! N) { B
var last = 23 //最后一页的文件名中的数字8 o: K3 ^. T& S h, W8 m! y, ^
var len = 2 //文件名中的数字的位数,从以上四个变量中可知文件名为"page01.htm"和"page23.htm"这种形式
% E; A- S, e- K7 p, Zvar cur_page = location.href.match(new RegExp(prefix "(\\d )" suffix,"i"))[1]|0 //从当前页面地址中查找匹配的数字
3 p! T& z" I. w* f/ p+ i: }var previous = cur_page-1 //上一页的文件名中的数字为当前页的减1" X1 @) B# O$ n* |' F
var next = cur_page 1 //下一页的文件名中的数字为当前页的加16 }9 c/ W3 j1 U, t9 n5 ~8 o
if(cur_page == first) previous = first //如果当前页为首页,则上一页的链接为首页
. O4 y, `* w1 R( i' P, g/ L: qif(cur_page == last) next = last //如果当前页为尾页,则下一页的链接为尾页( V4 f2 n1 B- M
navbar.innerHTML = ["首页".mlink(first),"上一页".mlink(previous),"下一页".mlink(next),"尾页".mlink(last)].join(" ") //在 id 为 navbar 的对象中生成导航链接9 [0 T% H% \6 G; r5 T' C
7 s5 o+ N* O: j0 E6 ~( B O# V
0 ]% J% A+ r `
然后在各页中用div id="navbar"/divscript src="page.js"/script调用
点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹