pageGroup.js实现分页功能

本文实例为大家分享了pageGroup.js实现分页功能的具体代码,供大家参考,具体内容如下

1.html页面

引入

<link rel="stylesheet" type="text/css" href="/stylesheets/pageGroup.css" rel="external nofollow" >
<script src="/javascripts/web/pageGroup.js" type="text/javascript"></script>
<div id="pageGro" class="cb">
  {{if maxPage>0}}//总页数
  <div class="pageUp">上一页</div>
  <div class="pageList">
  <ul>
  </ul>
</div>
  <div class="pageDown">下一页</div>{{/if}}
  <div id="countPage" style="display:none">{{maxPage}}</div>//总页数
  <div id="nowPage" style="display:none">{{page}}</div>//当前页
  <div id="title" style="display:none">{{title}}</div>//标题
</div>

2.pageGroup.css

/* CSS Document */
/*分页*/
#pageGro{ width:400px; height:25px; margin:0px auto; padding-top:30px;}
#pageGro div,#pageGro div ul li{ font-size:12px; color:#999; line-height:23px; float:left; margin-left:5px;}
#pageGro div ul li{ width:22px; text-align:center; border:1px solid #999; cursor:pointer;}
#pageGro div ul li.on{ color:#fff; background:#3c90d9; border:1px solid #3c90d9;}
#pageGro .pageUp,#pageGro .pageDown{ width:63px; border:1px solid #999; cursor:pointer;}
#pageGro .pageUp{ text-indent:23px; background:url(/images/pageUp.png) 5px 7px no-repeat;}
#pageGro .pageDown{ text-indent:5px; background:url(/images/pageDown.png) 46px 6px no-repeat;}

3.pageGroup.js

// JavaScript Document
$(function(){
 //根据总页数判断,如果小于5页,则显示所有页数,如果大于5页,则显示5页。根据当前点击的页数生成
 var maxPage=jQuery("#countPage").text();
 var nowPage=jQuery("#nowPage").text();
 var index=parseInt(nowPage);//当前页
 var title=jQuery("#title").text();
 var pageCount =parseInt(maxPage) ;//模拟后台总页数
 //生成分页按钮
 if(pageCount>5){
  page_icon(1,5,0);
  pageGroup(index,pageCount);
 }else{
  //alert("66");
  page_icon(1,pageCount,0);
  pageGroup(index,pageCount);
 }

 //点击分页按钮触发
 $("#pageGro li").live("click",function(){
  if(pageCount > 5){
   var pageNum = parseInt($(this).html());//获取当前页数
   window.location.href = "/article/search/"+title+"/"+pageNum;
   pageGroup(pageNum,pageCount);
  }else{
   var indexpage=jQuery(this).text();
   window.location.href = "/article/search/"+title+"/"+indexpage;
   $(this).addClass("on");
   $(this).siblings("li").removeClass("on");
  }
 });

 //点击上一页触发
 $("#pageGro .pageUp").click(function(){
  if(pageCount > 5){
   if(index>1){
    window.location.href = "/article/search/"+title+"/"+(index-1);
   }
  }else{
   if(index > 1){
    window.location.href = "/article/search/"+title+"/"+(index-1);
    $("#pageGro li").removeClass("on");//清除所有选中
   }
  }
 });

 //点击下一页触发
 $("#pageGro .pageDown").click(function(){
  if(pageCount > 5){
   if(nowPage<pageCount){
    window.location.href = "/article/search/"+title+"/"+(index+1);
   }
  }else{
   if(index< pageCount){
    window.location.href = "/article/search/"+title+"/"+(index+1);
    $("#pageGro li").removeClass("on");//清除所有选中
   }
  }
 });
});

//点击跳转页面
function pageGroup(pageNum,pageCount){
 if(pageCount>5){
  switch(pageNum){
   case 1:
    page_icon(1,5,0);
    break;
   case 2:
    page_icon(1,5,1);
    break;
   case pageCount-1:
    page_icon(pageCount-4,pageCount,3);
    break;
   case pageCount:
    page_icon(pageCount-4,pageCount,4);
    break;
   default:
    page_icon(pageNum-2,pageNum+2,2);
    break;
  }
 }
 if(pageCount<5){
  switch(pageNum){
   case 1:
    page_icon(1,pageCount,0);
    break;
   case 2:
    page_icon(1,pageCount,1);
    break;
   case pageCount-1:
    page_icon(1,pageCount,2);
    break;
   case pageCount:
    page_icon(1,pageCount,3);
    break;
  }
 }
 if(pageCount==5){
  switch(pageNum){
   case 1:
    page_icon(1,pageCount,0);
    break;
   case 2:
    page_icon(1,pageCount,1);
    break;
   case pageCount-1:
    page_icon(1,pageCount,3);
    break;
   case pageCount:
    page_icon(1,pageCount,4);
    break;
   default:
    page_icon(1,pageNum+2,2);
    break;
  }
 }
}

//根据当前选中页生成页面点击按钮
function page_icon(page,count,eq){
 var ul_html = "";
 for(var i=page; i<=count; i++){
  ul_html += "<li>"+i+"</li>";
 }
 $("#pageGro ul").html(ul_html);
 $("#pageGro ul li").eq(eq).addClass("on");
}

//上一页
function pageUp(pageNum,pageCount){
 switch(pageNum){
  case 1:
   break;
  case 2:
   page_icon(1,5,0);
   break;
  case pageCount-1:
   page_icon(pageCount-4,pageCount,2);
   break;
  case pageCount:
   page_icon(pageCount-4,pageCount,3);
   break;
  default:
   page_icon(pageNum-2,pageNum+2,1);
   break;
 }
}

//下一页
function pageDown(pageNum,pageCount){
 switch(pageNum){
  case 1:
   page_icon(1,5,1);
   break;
  case 2:
   page_icon(1,5,2);
   break;
  case pageCount-1:
   page_icon(pageCount-4,pageCount,4);
   break;
  case pageCount:
   break;
  default:
   page_icon(pageNum-2,pageNum+2,3);
   break;
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 纯javascript实现分页(两种方法)

    先给大家贴效果图: 网上确实有很多分页的插件以及开源代码,单本是一个后台开发猿,前台css等样式还驾驭不住,所以就开始自己去写了.其实这个分页原理很简单,就是用ajax往后台传值(当前页码),后台使用limit进行分页. 因为这是我自己第一次动手用js写分页,写的应该也不是很完美,有些公共的没有抽取出来,但是用起来还是可以的,这块代码是可以把它当做公共的分页去处理的,我就是用 这块代码写了两个稍微不同一些的分页!公共的代码抽取的也差不多,主要就是ajax后台以及返回的值不同而已,只要把总页码的值

  • 纯js分页代码(简洁实用)

    复制代码 代码如下: //每页显示字数PageSize=5000;//分页模式flag=2;//1:根据字数自动分页 2:根据[NextPage]分页//默认页startpage = 1;//导航显示样式 0:常规 1:直接 3:下拉TopShowStyle = 1;DownShowStyle = 0; var currentSet,CutFlag,TotalByte,PageCount,key,tempText,tempPage; key=""; currentSet=0; var

  • JSP分页显示的实例代码

    1.mysql的limit关键字 (DAO) select * from tablename limit startPoint, numberPerPage; tablename 就是要分页显示的那张表的名称: startPoint 就是起始的位置 -1: numberPerPage 就是一页显示的条数. 例如: select * from comment limit 20,5; 则是从comment表中抽取21~25号评论: 2.jQuery load函数 (页面JS) MySQL的limit

  • 利用js制作html table分页示例(js实现分页)

    有时候table的列数太长,不利于使用者查询,所以利用JS做了一个table的分页,以下为相关代码 一.JS代码 复制代码 代码如下: <script type="text/javascript">            var pageSize = 15;    //每页显示的记录条数             var curPage=0;        //当前页             var lastPage;        //最后页             var

  • js分页显示div的内容

    div分页显示_我们_www.jb51.net #frameContent{ width:500px; /*调整显示区的宽*/ height:200px; /*调整显示区的高*/ font-size:14px; line-height:20px; border:1px solid #000000; overflow-pageINdex:hidden; overflow-y:hidden; word-break:break-all; } a{ font-size:12px; color:#0000

  • jsp分页显示的实现代码

    最近这几天在做JSP留言板设计的过程中,遇到了一个问题.先看一张截图: 这是随便在一个新闻的留言页面截的图,假如留言条数太多,那整个页面得排好长好长,这就直接给用户造成了麻烦.不舒服的感受,所以,解决这个问题,通常采用分页显示的方法.       要把页面显示方式设计成这样的方式,通常需要用到这几个基本变量:pageSize(每个页面所显示的记录数).pageCount(一共有多少个页面).showPage(目前显示第几页).recordCount(总的记录数),为了方便理解,画了一张图: 如果

  • js表格分页实现代码

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

  • 一个实用的JSP分页代码

    有热心网友回复:str += " 转到<select name='page' onChange=\"window.location.href='" + fileName + temp + "cur_page='+this.options[this.selectedIndex].value\">"; 已经试过了,没问题 1.以下是实现分页的类PageResultSet 复制代码 代码如下: package page.bean; impo

  • Angular.js与Bootstrap相结合实现表格分页代码

    先给大家简单介绍angular.js和bootstrap基本概念. AngularJS 是一个 JavaScript 框架.它可通过 <script> 标签添加到 HTML 页面. AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML. Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷. 最近一直学习Angular.js,在学习过程

  • 非常不错的一个JS分页效果代码,值得研究

    本来想用网上找来的分页程序,不过都得做修改,感觉麻烦了,还是自己写一个好了,以后自己用的时候修改就方便了~~大家都多动手,自己写的才是最好的,日后想干什么的,做修改也是很容易的~~顺便也扩充一下自己的代码库~~ 补充一句,cpage是页面计数,应为全局变量,这样可以随处调用它,totalpage是总页数 JS静态分页程序 a:link,a:visited,a:hover,.current,#info{ border:1px solid #DDD; background:#F2F2F2; disp

随机推荐