jquery动态分页效果堪比时光网

 更新时间:2014年09月25日 15:54:06   投稿:whsnow  
刚刚弄好了一个jquery动态分页效果,拿出来与大家分享,效果与时光网的差不多

最近一直研究jquery的分页效果,刚刚弄好了一个,拿出来与大家分享。分页效果与时光网的差不多。

先在aspx页面放置一个<div class="pageDivs"></div> ,这个是用来存放分页的。

然后建一个page.js文件,具体代码如下(js中用到的css类是自己设置的,这里就不给出了,具体的大家可以自己设置一下css样式):

复制代码 代码如下:

$(document).ready(function(){
var pageCount=0;//总页数,在数据处理的函数里设定

//////////////////////右部按钮分页显示
function right(pageCount,limit,rlimit){
var html="";
if(parseInt(pageCount)-limit>=rlimit){
for(var i=parseInt(pageCount)-rlimit+1; i<=parseInt(pageCount); i++){
html+="<a page="+i+" leaf='leaf'>"+i+"</a>";}
}
else{
for(var i=parseInt(limit)+1; i<=pageCount; i++){
html+="<a page="+i+" leaf='leaf'>"+i+"</a>";}
}
return html;
}
//////////////////////////首页,尾页,上一页,下一页
function changeState(pageIndex,pageCount){
var $button1=$("div.pageDivs").find("#Button1");//上一页
var $button2=$("div.pageDivs").find("#Button2");//下一页
var $first=$("div.pageDivs").find("#First");//首页
var $last=$("div.pageDivs").find("#Last");//尾页
if(parseInt(pageIndex)==1){
$first.css("display","none");
$button1.css("display","none");}
else{
$first.css("display","inline");
$button1.css("display","inline");
$first.attr("page",1);
$button1.attr("page",parseInt(pageIndex)-1);}
if(parseInt(pageIndex)==pageCount){
$button2.css("display","none");
$last.css("display","none");}
else{
$last.css("display","inline");
$button2.css("display","inline");
$last.attr("page",pageCount);
$button2.attr("page",parseInt(pageIndex)+1);}

}
////////////////////////////////span动态分页 左边显示的页码个数,右边显示的页码个数,要求limit>rlimit
function span(pageCount,pageIndex,limit,rlimit){
var isContinue=true;//指示是否继续执行函数
var html="<a id='First' href='#' >|<</a><a id='Button1' href='#' ><</a>";
var change=(parseInt(pageCount)-parseInt(rlimit))/(parseInt(limit)-2);//指示分页码可以变动的次数
if(pageCount!=0&&pageCount!=1){
if(pageCount<=limit){
for(var i=1; i<=pageCount; i++){
html+="<a page="+i+" leaf='leaf'>"+i+"</a>"}
}
else{
if(parseInt(pageIndex)<(limit-2)){
for(var i=1; i<=limit; i++){
html+="<a page="+i+" leaf='leaf'>"+i+"</a>";}
html+="...";
html+=right(pageCount,limit,rlimit);
}
else{
if(parseInt(pageIndex)%(limit-2)==0){
if(parseInt(pageIndex)/(limit-2)<=change&&parseInt(pageIndex)-1+parseInt(limit)-1<=parseInt(pageCount)-parseInt(rlimit)){
for(var i=parseInt(pageIndex)-1; i<parseInt(pageIndex)-1+limit; i++){
html+="<a page="+i+" leaf='leaf'>"+i+"</a>";}
html+="...";
html+=right(pageCount,limit,rlimit);
}
else{
for(var i=1; i<=rlimit; i++){
html+="<a page="+i+" leaf='leaf'>"+i+"</a>";}
html+="...";
var rest=parseInt(pageCount)-parseInt(rlimit);
if(rest<limit){
for(var i=parseInt(rlimit)+1; i<=parseInt(pageCount); i++){
html+="<a page="+i+" leaf='leaf'>"+i+"</a>";}
}
else{
var start=parseInt(pageCount)-parseInt(limit)+1;
for(var i=start; i<=pageCount; i++){
html+="<a page="+i+" leaf='leaf'>"+i+"</a>";}
}
}


}
else{
html=$("div.pageDivs").html();
$("div.pageDivs").html(html);
isContinue=false;
}
}

}
}
if(isContinue){
html+="<a id='Button2' href='#' >></a><a id='Last' href='#' >>|</a>";
$("div.pageDivs").html(html);}
changeState(pageIndex,pageCount);
$("div.pageDivs").find("a[page=" + parseInt(pageIndex) + "]:visible").removeAttr("href").removeClass("disabled").addClass("current").siblings("a[page:visible").removeClass("current").addClass("disabled").attr("href", "#");
}

function page(pageIndex){

/////////////这里放你具体的数据显示,使用ajax动态加载处理数据

pageCount="通过数据处理获得的页面总数";

span(pageCount,pageIndex,7,2);//对分页效果进行调用,这里设置左边显示7个页码,右边显示2个页码。

}

//////////////////////////////为页码绑定事件

$("div.pageDivs").find("a:visible").live("click",function(){
var result=$(this).attr("page");
if((typeof $(this).attr("leaf"))!= 'undefined'){
$(this).removeAttr("href").removeClass("disabled").addClass("current").siblings().removeClass("current").addClass("disabled").attr("href","#");}

page(result);
});
});


这样就行了,以上分页的算法是可以封装的,与具体的项目没关系,可以通用。

相关文章

  • 原来Jquery.load的方法可以一直load下去

    原来Jquery.load的方法可以一直load下去

    使用jQuery.load方法加载一个网页,那么这个网页内部的js代码是否能够执行呢,答案是肯定的,这就相当于把load的内容与主页面进行了合并一样
    2011-03-03
  • jQuery横向擦除焦点图特效代码分享

    jQuery横向擦除焦点图特效代码分享

    这篇文章主要介绍了jQuery横向擦除焦点图特效,一个具有自己特色的焦点图会吸引用户的注意力,让用户产生浏览网站的兴趣至关重要,现在小编推荐给大家一款特别棒的焦点图,感兴趣的小伙伴可以参考下。
    2015-09-09
  • jQuery + Flex 通过拖拽方式动态改变图片的代码

    jQuery + Flex 通过拖拽方式动态改变图片的代码

    功能终于告一段落了,实现了预期的功能。遇到了一个小麻烦,js 会把某些变量( 如果你是通过对象的方式传递的,将在传递之后丢失类型信息 ,后面*号部分)
    2011-08-08
  • 限制上传文件大小和格式的jQuery插件实例

    限制上传文件大小和格式的jQuery插件实例

    这篇文章主要介绍了限制上传文件大小和格式的jQuery插件,实例分析了对上传文件的大小及格式的限制功能,非常具有实用价值,需要的朋友可以参考下
    2015-01-01
  • 表单中单选框添加选项和移除选项

    表单中单选框添加选项和移除选项

    这篇文章主要介绍了表单中单选框添加选项和移除选项的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • jQuery轮播图功能制作方法详解

    jQuery轮播图功能制作方法详解

    这篇文章主要介绍了jQuery轮播图功能制作方法,结合实例形式详细分析了jQuery轮播图实现原理、步骤与相关操作技巧,需要的朋友可以参考下
    2019-12-12
  • jQuery EasyUI实现右键菜单变灰不可用效果

    jQuery EasyUI实现右键菜单变灰不可用效果

    用jQuery实现了三种情况下的变灰不可用的效果,当鼠标放到上面点击,右键菜单就会消失,其实解决的办法也很简单,只要在对应的单击事件里重新绑定右键菜单即可,需要的朋友可以参考下
    2015-09-09
  • jQuery的框架介绍

    jQuery的框架介绍

    jQuery使用有一段时间了,但是有一些API的实现实在想不通。小编参考相关资料源码,现在把我的学习过程和收获分享给大家
    2016-05-05
  • jQuery实现鼠标悬停显示提示信息窗口的方法

    jQuery实现鼠标悬停显示提示信息窗口的方法

    这篇文章主要介绍了jQuery实现鼠标悬停显示提示信息窗口的方法,涉及jQuery操作鼠标事件及show、hide等方法的使用技巧,需要的朋友可以参考下
    2015-04-04
  • jquery实现顶部向右伸缩的导航区域代码

    jquery实现顶部向右伸缩的导航区域代码

    这篇文章主要介绍了jquery实现顶部向右伸缩的导航区域代码,涉及jquery鼠标click点击事件及页面元素动态操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09

最新评论