基于Bootstrap和jQuery构建前端分页工具实例代码

前端之家收集整理的这篇文章主要介绍了基于Bootstrap和jQuery构建前端分页工具实例代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

为啥名字叫【前端分页工具】?因为我实在想不到什么好名字,如果想要更加贴切的理解这个工具,应该从业务来看

业务是这样的,有一个数据从后台传到前台,因为数据量不大,因此传过来之后直接显示即可,但是=。=所谓的数据量不大,最多也达到成百上千条,不可能全部显示出来,那么就需要分页

常规的分页是利用Ajax,通过传页偏移量到后台后台查询数据库再返回数据,可以实现无刷新分页,拿到的数据也是最新的

前端分页

优点:一次传输数据,避免用户反复请求服务器,减少网络带宽、服务器调度压力、数据库查询、缓存查询压力

缺点:有新数据无法实时更新,除非用户重新请求数据

过程

刚开始我不希望造轮子,想尽快完成,于是找了很久Bootstrap的工具,找到了一个BootstrapTable,这个插件很强大,除了可以使用常规的方式分页,还可以指定数据(json),进行前端分页

但是,这个是表格分页,也就是说,如果不是表格那就没用了,刚好…我的业务就不是表格..那么只能看插件源码修改了,改的面目全非后,上个厕所回来,想到了更好的办法,于是删除

解决办法:

先思考分页是为了什么?呈现想看的页面,隐藏不想看的。没错,可以利用CSS的display属性

版本

Bootstrap-3.3.0

jQuery-1.11.3

代码

JavaScript

= 2) && (page_num <= (number_of_pages - 3)) ){ //生成分页->上一页 var page_info = '
  • '; var p = page_num; var i = page_num - 2; var j = page_num + 2; //生成分页->前2页 while(page_num > i){ page_info += '
  • '; i++; } //生成分页->当前页 page_info += '
  • '; //生成分页->后2页 while(p < j){ if(p == number_of_pages){ break; } page_info += '
  • '; p++; } //生成分页->下一页 page_info += '
  • '; //加载分页 $('.pagination').html(page_info); $('.page_link[longdesc=' + page_num +']').parent().addClass('active').siblings('.active').removeClass('active'); } else{ //否则不偏移 //激活某一页,使得显示某一页 $('.page_link[longdesc=' + page_num +']').parent().addClass('active').siblings('.active').removeClass('active'); } //更新隐藏域中当前页 $('#current_page').val(page_num); } $(function(){ //每页显示的数目 var show_per_page = 10; //获取话题数据的数量 var number_of_items = $('#datas').children().size(); //计算页数 var number_of_pages = Math.ceil(number_of_items/show_per_page); //设置隐藏域默认值 $('#current_page').val(0); $('#show_per_page').val(show_per_page); //生成分页->上一页 var page_info = '
  • '; var current_link = 0; //生成分页->页数 while(number_of_pages > current_link){ if(current_link == 5){ break; } page_info += '
  • '; current_link++; } //生成分页->下一页 page_info += '
  • '; //加载分页 $('.pagination').html(page_info); //生成分页->左侧总数 $("#data-total-page").html(show_per_page+"条/页,共"+number_of_pages+"页") //激活第一页,使得显示第一页 $('#data-pagination li').eq(1).addClass('active'); //隐藏该对象下面的所有子元素 $('#datas').children().css('display','none'); //显示第n(show_per_page)元素 $('#datas').children().slice(0,show_per_page).css('display','inline-block'); });

    HTML

    PHP foreach($data as $v) { echo '
    '; } ?>

    效果如下

    动态切换

    以上所述是小编给大家介绍的基于Bootstrap和jQuery构建前端分页工具实例代码。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持

    原文链接:https://www.f2er.com/jquery/44223.html

    猜你在找的jQuery相关文章