js版本:
//total_page:总页数 //boundary:页数临界值 //front_range:前段显示页码数 //mid_range:中段显示页码数 //rear_range后段显示页码数 //page_size:每页记录数 var pagination_config = {total_page : 10,current_page:1, boundary : 7, front_range : 1, mid_range : 5,rear_range : 1,page_size:10}; /** * 分?格式?理,ex. prev 1 ... 8 9 10 11 12 ... 20 next * @return array 要?示的 */ function pagintion_array() { var total_page = pagination_config.total_page, boundary = pagination_config.boundary, front_range = pagination_config.front_range, mid_range = pagination_config.mid_range, rear_range = pagination_config.rear_range, current_page = pagination_config.current_page; var pagintion = []; current_page = (current_page > total_page) ? total_page : current_page; // ?小於?界值,示所有 if (total_page <= boundary) { for (i = 1; i <= total_page; i++) { pagintion.push(i); } } else { var front_end = front_range; // 前段最後一? var mid_start = current_page - math.ceil(parsefloat(mid_range - 1) / 2); // 中段第一? var mid_end = current_page + ((mid_range - 1) - math.ceil((mid_range - 1) / 2)); // 中段最後一? var rear_start = total_page - rear_range + 1; // 後段第一? // 中段第一?小於等於1,中?往左位移 while (mid_start total_page) mid_start -= 1; mid_end -= 1; } // 取出需要?示的? for (var i = 1; i 1) { pagintion.push('...'); } pagintion.push(i); } } } return pagintion; } /** * 拼装分页的 html ; * 样式 for jquery.simplepagination * @return string */ function create_html() { var current_page = pagination_config.current_page, total_page = pagination_config.total_page; if(total_page<=1){ return; } var html = ''; //计算总页数; //计算分页 var pagintion = pagintion_array(); //上一页 //上一页 不可点击 if (current_page $val) { if (isset($this->$key)) { $this->$key = $val; } } } } /** * 分?格式?理,ex. prev 1 ... 8 9 10 11 12 ... 20 next * copy from store_lib.pagintion , 从store_lib中复制过来 * @param int $current_page ?前 * @param int $total_page ? * @param int $boundary ?界值 * @param int $front_range 前段?示? * @param int $mid_range 中段?示? * @param int $rear_range 後段?示? * @return array 要?示的 */ public function pagintion_array($current_page = 1, $total_page = 10, $boundary = 7, $front_range = 1, $mid_range = 5, $rear_range = 1) { $pagintion = array(); $current_page = ($current_page > $total_page) ? $total_page : $current_page; // ?小於?界值,示所有 if ($total_page <= $boundary) { for ($i = 1; $i pagintion_array($this->current_page, $this->total_page, $this->boundary, $this->front_range, $this->mid_range, $this->rear_range); //上一页 //上一页 不可点击 if ($this->current_page current_page - 1; $html.='page_url . $page_prev . ' class=page-link prev url=' . $this->page_url . $page_prev . ' page=' . $page_prev . ' style=color: rgb(102, 102, 102); position: relative; background: rgb(255, 255, 255);>上一页'; } //每一页的 链接 foreach ($pagintion as $page_id) { if ($page_id == $this->current_page) { $html.='' . $page_id . ''; } elseif ($page_id == '...') { $html.='…'; } else { $html.='page_url . $page_id . ' class=page-link page=' . $page_id . '>' . $page_id . ''; } } //下一页 //下一页 不可点击 if ($this->current_page >= $this->total_page) { $html.='下一页'; } else { //下一页 可点击 $page_next = $this->current_page + 1; $html.='page_url . $page_next . ' class=page-link next url=' . $this->page_url . $page_next . ' page=' . $page_next . ' style=color: rgb(102, 102, 102); position: relative; width: 57px; background: rgb(255, 255, 255);>下一页'; } $html.=''; return $html; }}
预览效果: