前端实现一个简单的表格分页
2016-09-19 17:11
821 查看
实现原理与幻灯类似,不过要注意联动时体验要好。
html结构:
实现效果:
html结构:
<table class="ad_list ad_link"> <colgroup class="colgroup1"></colgroup> <colgroup class="colgroup2"></colgroup> <colgroup class="colgroup3"></colgroup> <colgroup class="colgroup4"></colgroup> <colgroup class="colgroup5"></colgroup> <colgroup class="colgroup6"></colgroup> <tr><th>分会账号</th><th>名称</th><th>充值总额</th><th>充值次数</th><th>注册人数</th><th>注册IP数</th><th>日期</th></tr> </table> <div class="income_box" id="income_box"> <table class="ad_list ad_link income_table" id="income_table"> <colgroup class="colgroup1"></colgroup> <colgroup class="colgroup2"></colgroup> <colgroup class="colgroup3"></colgroup> <colgroup class="colgroup4"></colgroup> <colgroup class="colgroup5"></colgroup> <colgroup class="colgroup6"></colgroup> <tr><td>abcxd1</td><td>是对方即</td><td>1000</td><td>50</td><td>60</td><td>60</td><td>2016.08.05</td></tr> <tr><td>abcxd2</td><td>是对方即</td><td>1000</td><td>50</td><td>60</td><td>60</td><td>2016.08.05</td></tr> <tr><td>abcxd3</td><td>是对方即</td><td>1000</td><td>50</td><td>60</td><td>60</td><td>2016.08.05</td></tr> <tr><td>abcxd4</td><td>是对方即</td><td>1000</td><td>50</td><td>60</td><td>60</td><td>2016.08.05</td></tr> ... </table> </div> <div class="pptv_pages" id="pages_box"> <div class="pptv_pages"> <span></span> <span></span> <span><a href="javascript:void(0);" class="prev">上一页</a></span> <div class="pages"> <div class="inner_pages J_pages"></div> </div> <span><a href="javascript:void(0);" class="next">下一页</a></span> <div> <select id="select_pages"></select> </div> </div> </div>css样式:
.income_box{max-height: 581px;min-height:30px;_height:581px;height:581px;overflow: hidden;position: relative;margin:0 auto;width:795px;} .colgroup1,.colgroup2{width:15%;} .colgroup3,.colgroup4,.colgroup5,.colgroup6{width:14%;} .income_table{position: absolute;top:0;left:0;} .pptv_pages .pages{display:inline-block;top:20px;padding:4px 0;height:38px;overflow: hidden;position: relative;} .pptv_pages .inner_pages{display:inline-block;position: absolute;top:12px;left:0;height: 38px;}js部分:(用jquery实现)
var $income_box=$('#income_box'),//表格盒区域 $income_table=$('#income_table');//统计表格 var _height=$income_box.height(),//翻页高度 trLen=$income_table.find('tr').length,//总记录条数 perPage=20,//每页显示行数 _left=29;//页码移动距离 var countPage=Math.ceil(trLen/perPage);//总页数 var page=1;//起始页 //分页区 var $pages_box=$('#pages_box'); var $select_pages=$('#select_pages'); var $inner_pages=$pages_box.find('.J_pages'); $pages_box.find('span').eq(0).text('共'+trLen+'条');//条数 $pages_box.find('span').eq(1).text(page+'/'+countPage+'页');//页数 var aPages=['<a href="javascript:void(0);" class="current">1</a>']; var optionPages=['<option value="1" selected="selected">第1页</option>']; for(var i=2;i<=countPage;i++){ aPages.push('<a href="javascript:void(0);">' + i + '</a>'); optionPages.push('<option value="'+i+'">第' + i + '页</option>'); } $inner_pages.append(aPages.join('')); $select_pages.append(optionPages.join('')); if(countPage<=5){//总页数小于5页 $pages_box.find('.pages').width(29*countPage); }else{ $pages_box.find('.pages').width(145); } //点击某一页 $inner_pages.find('a').off().on('click',function(e){ if(!$income_table.is(":animated")){ $(this).addClass('current').siblings().removeClass('current'); var index=$(this).index(); page=index+1; //表格移动 $income_table.stop().animate({'top': -1*(_height*index) +"px"},800); $select_pages.val(index+1); $pages_box.find('span').eq(1).text(index+1+'/'+countPage+'页');//页数 if(countPage>5){ if(page>3 && page<countPage-1){ $inner_pages.stop().animate({'left': -1*(_left*(page-3)) +"px"},800); } if(page==1 || page==2 || page==3){ $inner_pages.stop().animate({'left': 0 +"px"},800); } if(page==countPage || page==countPage-1 || page==countPage-2){ $inner_pages.stop().animate({'left': -1*(_left*(countPage-5)) +"px"},800); } } } }); //点击下拉页中的某一页 $select_pages.on('change',function(e){ if(!$income_table.is(":animated")){ var index=parseInt($(this).val()); page=index; $inner_pages.find('a').eq(index-1).addClass('current').siblings().removeClass('current'); //表格移动 $income_table.stop().animate({'top': -1*(_height*(index-1)) +"px"},800); $pages_box.find('span').eq(1).text(index+'/'+countPage+'页');//页数 if(countPage>5){ if(page>3 && page<countPage-1){ $inner_pages.stop().animate({'left': -1*(_left*(page-3)) +"px"},800); } if(page==1 || page==2 || page==3){ $inner_pages.stop().animate({'left': 0 +"px"},800); } if(page==countPage || page==countPage-1 || page==countPage-2){ $inner_pages.stop().animate({'left': -1*(_left*(countPage-5)) +"px"},800); } } } }); //上一页 $pages_box.find('.prev').off().on('click',function(e){ if(!$income_table.is(":animated")){ if(page == 1){ $income_table.stop(); $inner_pages.stop(); }else{ $income_table.animate({'top' : "+=" + _height +"px"},800); if(countPage>5){ if(page>3 && page<countPage-1){ $inner_pages.animate({'left' : "+=" + _left +"px"},800); } if(page==1 || page==2 || page==3){ $inner_pages.stop().animate({'left': 0 +"px"},800); } if(page==countPage || page==countPage-1){ $inner_pages.stop().animate({'left': -1*(_left*(countPage-5)) +"px"},800); } } page--; $inner_pages.find('a').eq(page-1).addClass('current').siblings().removeClass('current'); $select_pages.val(page); $pages_box.find('span').eq(1).text(page+'/'+countPage+'页');//页数 } } }); //下一页 $pages_box.find('.next').off().on('click',function(e){ if(!$income_table.is(":animated")){ if(page == countPage ){ $income_table.stop(); $inner_pages.stop(); }else{ $income_table.animate({'top' : "-=" + _height +"px"},800); if(countPage>5){ if(page>=3 && page<countPage-1){ $inner_pages.animate({'left' : "-=" + _left +"px"},800); } if(page==1 || page==2){ $inner_pages.stop().animate({'left': 0 +"px"},800); } if(page==countPage || page==countPage-1 ||page==countPage-2){ $inner_pages.stop().animate({'left': -1*(_left*(countPage-5)) +"px"},800); } } page++; $inner_pages.find('a').eq(page-1).addClass('current').siblings().removeClass('current'); $select_pages.val(page); $pages_box.find('span').eq(1).text(page+'/'+countPage+'页');//页数 } } });
实现效果:
相关文章推荐
- ADO.Net实现非连接的简单分页方法(DataAdapter.Fill重载中的一个).
- hibernate+spring的一个简单分页实现
- 一个简单的oracle分页存储过程的实现和调用
- 用struts2 完成一个简单的通讯录,实现增删改查,分页,文件上传(头像),表单验证(两种方法)
- GWT 2.0 UiBinder 实现一个简单的分页.实现简单的CRUD.
- 一个简单的oracle分页存储过程的实现和调用
- 一个简单的oracle分页存储过程的实现和调用
- 一个简单编译器前端的实现
- 一个简单的分页(mysql) 简单实现
- 一个简单的可以实现分页的SqlHelper类
- 一个简单的oracle分页存储过程的实现和调用
- hibernate+spring的一个简单分页实现
- 一个简单但常用的javascript表格样式_鼠标划过行变色 简洁实现
- 使用EF6和MVC5实现一个简单的选课系统--排序、过滤和分页(3/12)
- 一个简单的oracle分页存储过程的实现和调用
- hibernate+spring的一个简单分页实现
- 一个简单但常用的表格样式--鼠标划过行变色--简洁实现 (2)
- 一个简单但常用的javascript表格样式_鼠标划过行变色 简洁实现
- 一个简单的厦大网站前端实现
- JS 实现简单的Table表格分页效果(假分页)