zoukankan      html  css  js  c++  java
  • js-前端分页效果的实现

    本文将介绍前端分页效果的实现,并没有借助地址栏的参数来实现,利用相关公式来完成。

    1、总页数 = Math.ceil(数据长度/每页需要显示的数量);注:向上取整

    2、每页显示的数据的开头索引 = 当前页码-1 * 每页需要显示的数量;  注:循环创建的页码索引从0开始,页码从1开始,计算时需要减1

    3、每页显示的数据的结束索引 = 当前页码-1 * 每页需要显示的数量 + 每页需要显示的数量;

    具体效果图如下所示:

        

    附上具体实现代码,首先的有一些数据,本案例的数据来自数据库:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            body{
                padding-top: 40px;
            }
            table{
                 600px;
                min-height: 100px;
                border: 1px red solid;
                margin: 0 auto;
                border-collapse: collapse;
                text-align: center;
            }
            td,th{
                border: 1px red solid;
                height: 40px;
            }
            p{
                text-align: center;
            }
            p span{
                padding: 2px 5px;
                border: 1px #000 solid;
                font-size: 14px;
                cursor: pointer;
                margin: 0 1px;
            }
            .active{
                background-color: #a9a9cb;
                color: #fff;
            }
        </style>
    </head>
    <body>
        <table cellpadding='0' cellspacing='0'>
            <thead>
                *<th>编号</th>
                <th>商品名称</th>*
                <th>商品规格</th>
                <th>商品价格</th>*
                <th>库存量</th>*
            </thead>
            <tbody id="tbody">*

            </tbody>
        </table>
        <p id="p">
            
        </p>
    </body>
    <script>*
        // 初始显示第几页
        var page = 0;*
        var pSpan = '';*
        var res;
        var tbody = document.getElementById('tbody');
        var p = document.getElementById('p');
        var xhr = new XMLHttpRequest();
        xhr.open('get','php/select.php',true);
        xhr.send();
        xhr.onload = function(){
            if(xhr.status == 200){
                res = JSON.parse(xhr.responseText);


                // 第二个参数是一页显示多少个
                Page(res,3);
            }
        }
        // num是一页显示多少个,page指当前第几页
        *function Page(res,num){
            var pageNum = Math.ceil(res.length/num);
            var str = '';
            for(var i=0;i<pageNum;i++){8
        //索引从0开始,页面从1开始,得加1
                str +=`<span>${i+1}</span>`;*
            }
            p.innerHTML = str;
            pSpan = document.querySelectorAll('p span');
            active();
            var str2 = '';
            for(var i=page*num;i<page*num+num;i++){8
                str2 +=`<tr>8
                        <td>${res[i].id}</td>
                        <td>${res[i].name}</td>*
                        <td>${res[i].size}</td>
                        <td>${res[i].price}</td>
                        <td>${res[i].stock}</td>
                    </tr>`;
            }
            tbody.innerHTML = str2;
            for(var i = 0;i<pSpan.length;i++){
                pSpan[i].onclick = function(){
                    page = parseInt(this.innerHTML-1);*
                    active();
                    var str2 = '';
                    for(var i=page*num;i<page*num+num;i++){
                        if(i<res.length){
                            str2 +=`<tr>*
                                <td>${res[i].id}</td>
                                <td>${res[i].name}</td>*
                                <td>${res[i].size}</td>
                                <td>${res[i].price}</td>
                                <td>${res[i].stock}</td>
                            </tr>`;
                        }
                    }
                    tbody.innerHTML = str2;
                }
            }
        }

        // 控制选中和未选中的样式,可以修改对于样式
        function active(){
            for(var i=0;i<pSpan.length;i++){*
                pSpan[i].className = '';
            }
            
            pSpan[page].className = 'active';*
        }
    </script>
    </html>
     
    如果有什么问题,欢迎评论区留言哦
     
  • 相关阅读:
    Linux 实例如何开启 MySQL 慢查询功能
    20步打造最安全的Nginx Web服务器
    解决java compiler level does not match the version of the installed java project facet
    maven项目重构目录
    【JeeSite】角色和权限的修改
    【JeeSite】区域和菜单管理
    【JeeSite】登录和主题切换
    【JeeSite】用户管理
    一个程序员的故事
    maven项目发布到Tomcat丢失jar包
  • 原文地址:https://www.cnblogs.com/piaoyi1997/p/13083732.html
Copyright © 2011-2022 走看看