用pageGroup.js实现分页功能

1.html页面中

引入

<link rel="stylesheet" type="text/css" href="/stylesheets/pageGroup.css">
 <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;
    }
}
时间: 2024-10-08 06:34:19

用pageGroup.js实现分页功能的相关文章

jsp、js分页功能的简单总结

一.概述 首先,我们要明确为何需要分页技术,主要原因有以下: 1.分页可以提高客户体验度,适当地选择合适的数据条数,让页面显得更有条理,使得用户体验感良好,避免过多数据的冗余. 2.提高性能的需要.分页技术,有选择的加载某部分数据,在数据量较大的时候,分部分加载数据.显示数据,可以有效提高程序的性能,当然,单纯的js的分页技术并没有这种效果. 所以,分页技术是web技术中比较常用的技术,而下面讨论的主要是两种分页技术:一种是jsp的分页技术,其读取数据分批次读取,操作页数跳转的时候才加载相应页面

一个js实现的分页功能

分页,一直是个令我头疼的问题,用java写网站的时候 ,需要用到分页功能,那时候是定义一个分页用的类,感觉比较麻烦,不过在数据量大的时候,应该会比较合适 去年做项目的过程中,用的是下拉刷新的组件,是别人写的,实现起来不方便, 效果也不太好 偶然在网上看到过js的分页功能,想想既然java能实现,js肯定是也能实现的. 参考网上的内容,稍微修改了下,暂且称之为0.1版 具体方法:先将所有的数据取出来,并用html展示出来,但用js去控制html标签的显示与隐藏,算是从另一个角度实现了分页功能 这一

简单封装分页功能pageView.js

分页是一个很简单,通用的功能.作为一个有经验的前端开发人员,有义务把代码中类似这样公共的基础性的东西抽象出来,一来是改善代码的整体质量,更重要的是为了将来做类似的功能或者类似的项目,能减少不必要的重复工作量.在实际项目中,尤其是网站类型的项目中,分页部分的设计总是个性化比较强,基本上都不会长的一样,所以可能之前抽象出来的东西,如果写的不够灵活的话,对这些个性化强的项目来说,可能直接应用的时候也得做些调整才行.本文尝试提供一个尽量满足这两方面要求的分页组件. 先介绍下写这个东西的背景:一直以来,我

Node.js 博客实例(七)分页功能

原教程 https://github.com/nswbmw/N-blog/wiki/_pages的第七章,由于版本等的原因,在原教程基础上稍加改动即可实现. 给博客的主页和用户页面增加分页功能.设定:主页和用户页面每页最多显示十篇文章. 这里要用到 mongodb 的 skip 和 limit 操作. 打开 post.js ,把 Post.getAll 函数修改如下: //读取文章及其相关信息 Post.getTen = function(name,page,callback) { //打开数据

网站前端_JavaScript-项目经验.纯JavaScript实现客户端的分页功能?

项目简介: 说明: 此项目属于医院电子病例系统,由于历史原因,整个系统后台基于Java开发,前端使用Html+CSS+原生JavaScript,项目功能模块要求必须纯JS实现,而此次的任务是为住院病例页面编写一个客户端分页功能. 实现思路: 1. 基于客户端分页的前提是数据已经加载完毕,所以此功能模块必须等待数据加载完毕后再加载 2. 基于客户端分页的首页只需要显示24个患者信息即可 3. 上一页/当前页/下一页功能类似,基于当前页面传递同样的参数(页码, 限制患者数),所以自然而然想到了递归,

单篇文章JS模拟分页

废话部分 前两天做了一个前台分页插件,支持ajax读取数据绑定前台 和 url带页码参数跳转两种方式.于是稍加改动,做了一个单篇文章js模拟分页的代码,为什么说是模拟分页呢?因为在服务器响应HTML请求的时候,就已经把全文回传给客户端了,只是我们通过js的方式,把全文隐藏,每次翻页至显示出我们需要的那一部分,而不是真正的按需要去发出HTML请求.所以,在做这个插件的时候去掉了ajax请求的功能及其附带参数,去掉了pageSize参数(恒等于1).这里就不讨论具体的技术细节了和上一篇的分页计算原理

如何用angularjs制作一个完整的表格之二__表格分页功能

接上一次,这次主要介绍表格分页功能,由于项目需要这个案例是关于前端分页的方式,现在很少会这么用了,但如有需要可以参考其中的思路 html: 1.通过UL来展示页标,其中每个页标的li是通过异步加载从获取到不同的表格数据来动态生成的. <div class="pagination"> <ul style="float:right"> <li id="previous"><a href=""

分页功能

利用sui实现分页功能 先把相应的js和css引入,在把配置的方法写好,在页面的底部加上一个div   <div id = "div1"></div> 然后在页面上加入插件的相应API $('#div1').pagination({ pages: ${totalPage },//总页数 styleClass: ['pagination-large'], showCtrl: true, displayPage: 6, currentPage:${currentPa

Jquery分页功能

Jquery代码 /// <reference path="jquery-1.9.1-vsdoc.js" />//锚点var anchor="#apage";$(function(){    pagerFun();    $("#btnSearch").click(function(){        var name=$.trim($("#txtHospitalName").val());        var