前端分页

前端分页思想

  1. 内容总数量为totalCount
  2. 每页数量为pageCount
  3. 所求总页数为totalPages
    第一种计算totalPages的方法为:
    totalPages = (totalCount % pageCount ==0 ?totalCount/pageCount :Math.ceil(totalCount / pageCount))
    因为:Math.ceil去最大整数,所以
    Math.ceil(totalCount / pageCount) = totalCount / pageCount +1
    所以也可:
    totalPages = (totalCount % pageCount ==0 ?totalCount/pageCount :totalCount / pageCount + 1)
    第二种计算totalPages的方法为:
    totalPages = (totalCount + pageCount -1)/pageCount
    其中 loadCount- 1 就是 totalCount/ loadCount的最大的余数

代码如下:

<!DOCTYPE html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>分页</title>
    <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
    <style type="text/css">
        .table{border:solid #FFAEB9; border-width:1px 0px 0px 1px;width: 100%;font-size: 12px;line-height: 21px;text-align:center;}
        .table thead td{border:solid #FFAEB9; border-width:0px 1px 1px 0px;}
        .table tbody td{border:solid #FFAEB9; border-width:0px 1px 1px 0px;padding-right: 5px;padding-left: 5px;}
    </style>
</head>
<body>
<div style="width:450px;margin:0 auto;background: gray;">
    <div id="dataShow" style="width:450px;margin:0 auto;background: red;">
        <table class="table" id="table"></table>
    </div>
    <!--分页-->
    <div id="page" style="width:450px;margin:0 auto;"></div>
</div>
<script type="text/javascript">
    //编造表数据
    //表头
    var head=
        '<thead><tr>'+
        '<td> 姓  名 </td>'+
        '<td> 年  龄 </td>'+
        '<td> 彦  值* </td>'+
        '<td> 成  绩 </td>'+
        '<td> 身 高cm </td>'+
        '</tr></thead><tbody>';
    //表内容,后台返回的内容可以封装到这里,随时取用,但是如果数据量很大估计会相当耗资源。
    var pageData=[];
    for(var i=1;i<100;i++){
        var data='<tr>'+
            '<td>学生'+i+'</td>'+
            '<td>'+Math.round(Math.random()*20)+'</td>'+
            '<td>'+Math.round(Math.random()*5)+'颗星</td>'+
            '<td>'+Math.round(Math.random()*100)+'</td>'+
            '<td>'+Math.round(Math.random()*200)+'cm</td>'+
            '</tr>';
        pageData.push(data);
    }
    //表结尾
    var end='</tbody>';

    $(function(){
        var Count = pageData.length;//记录条数
        var PageSize=10;//设置每页示数目
        var PageCount=Math.ceil(Count/PageSize);//计算总页数
        var currentPage =1;//当前页,默认为1。
        //造个简单的分页按钮
        for(var i=1;i<=PageCount;i++){
            var pageN='<a href="#" selectPage="'+i+'" >第'+i+'页</a>';
            $('#page').append(pageN);
        }
        //显示默认页(第一页)
        $('#table').empty().append(head);
        for(i=(currentPage-1)*PageSize;i<PageSize*currentPage;i++){
            $('#table').append(pageData[i]);
        }
        $('#table').append(end);

        //显示选择页的内容
        $('a').click(function(){
            var selectPage=$(this).attr('selectPage');
            $('#table').html('');
            $('#table').append(head);
            for(i=(selectPage-1)*PageSize;i<PageSize*selectPage;i++){
                $('#table').append(pageData[i]);
            }
            $('#table').append(end);
        });
    });
</script>
</body>
</html>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端分页是指通过前端技术来实现对大量数据进行分页显示的功能。以下是一个简单的前端分页实现demo示例: HTML结构部分: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>前端分页示例</title> </head> <body> <div id="pagination"></div> <ul id="dataList"></ul> <script src="pagination.js"></script> <script> // 模拟的数据列表 var dataList = [ {id: 1, name: "张三"}, {id: 2, name: "李四"}, {id: 3, name: "王五"}, // 此处省略部分数据 {id: 10, name: "赵六"}, {id: 11, name: "钱七"} ]; // 初始化分页器 var pagination = new Pagination("pagination", { totalCount: dataList.length, // 数据总数 pageSize: 5, // 每页显示的数据条数 onPageChange: function(pageIndex) { // 切换页码的回调函数 renderDataList(pageIndex); } }); // 渲染数据列表 function renderDataList(pageIndex) { var start = pageIndex * pagination.options.pageSize; var end = start + pagination.options.pageSize; var currentDataList = dataList.slice(start, end); var html = ""; for (var i = 0; i < currentDataList.length; i++) { html += "<li>" + currentDataList[i].id + " - " + currentDataList[i].name + "</li>"; } document.getElementById("dataList").innerHTML = html; } // 初始化时渲染第一页数据 renderDataList(0); </script> </body> </html> ``` JavaScript部分(pagination.js): ```javascript function Pagination(id, options) { this.container = document.getElementById(id); this.options = Object.assign({ totalCount: 0, pageSize: 10, onPageChange: function() {} }, options); this.init(); } Pagination.prototype.init = function() { this.pageCount = Math.ceil(this.options.totalCount / this.options.pageSize); this.currentPage = 0; this.render(); }; Pagination.prototype.render = function() { var html = "<button onclick='pagination.prev()'>上一页</button><span>" + (this.currentPage + 1) + " / " + this.pageCount + "</span><button onclick='pagination.next()'>下一页</button>"; this.container.innerHTML = html; }; Pagination.prototype.prev = function() { if (this.currentPage > 0) { this.currentPage--; this.options.onPageChange(this.currentPage); this.render(); } }; Pagination.prototype.next = function() { if (this.currentPage < this.pageCount - 1) { this.currentPage++; this.options.onPageChange(this.currentPage); this.render(); } }; ``` 通过在HTML中引入pagination.js文件,创建一个`Pagination`对象进行初始化,并传入相关配置。在切换页码时,会调用`onPageChange`配置的回调函数,利用`renderDataList`函数渲染对应页码的数据列表。同时,前端分页的原理是通过切片(`slice`)方法来提取对应页码的数据,在HTML中通过按钮的点击事件来切换页码,更新当前页码并重新渲染分页器和数据列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值