zoukankan      html  css  js  c++  java
  • 分页(模仿百度)

    这次分页时上次分页的升级版,分页格式模仿百度,使用的是原生JS

    话不多说,直接看代码吧

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>分页</title>
    <style>
    #Data {
    border: 1px solid #f00;
    text-align: center;
    margin: 50px auto;
    }
    #nav{
    position: absolute;
    top: 50%;
    left: 10%;
    }
    a{
    display: inline-block;
    height: 34px;
    padding: 0 18px;
    border: 1px solid #e1e2e3;
    margin: 10px;
    text-align: center;
    line-height: 34px;
    text-decoration: none;
    color: #00f;
    }
    </style>
    </head>
    <body>
    <table id="Data" width="70%">
    <tr><td>测试编号1</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号2</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号3</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号4</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号5</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号6</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号7</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号8</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号9</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号10</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号11</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号12</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号13</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号14</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号15</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号16</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号17</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号18</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号19</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号20</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号21</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号22</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号23</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号24</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号25</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号26</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号27</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号28</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号29</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号30</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号31</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号32</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号33</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号34</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号35</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号36</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号37</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号38</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号39</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号40</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号31</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号42</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号43</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号44</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号45</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号46</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号47</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    <tr><td>测试编号48</td><td>25</td><td>单元格1</td><td>单元格2</td></tr>
    </table>
    <div id = 'nav'></div>
    <script>
    // 分页函数,参数当前页数,每页行数
    function goPage(curPage,Pagerow){
    var itable = document.getElementById('Data');
    var num = itable.rows.length;//记录所有行
    var totalPage = null;//记录总页数

    //总共分几页
    if(num / Pagerow > parseInt(num / Pagerow)){
    totalPage = parseInt(num / Pagerow) + 1;
    }else{
    totalPage = parseInt(num / Pagerow);
    }
    console.log('总页数:'+totalPage);
    console.log('当前页:'+curPage);

    //每页开始显示的行数
    var startRow = (curPage - 1) * Pagerow + 1;
    //每页结尾显示的行数
    var endRow = curPage * Pagerow;

    //便利数据实现分页
    for(var i = 1;i <= num;i ++){
    var irow = itable.rows[i-1];
    if(i >= startRow && i <= endRow){
    irow.style.display = 'block';
    }else{
    irow.style.display = 'none';
    }
    }

    //创建分页块
    var nPage = '';
    if(curPage > 1){
    nPage += "<a href="#" onclick="goPage("+(curPage-1)+','+Pagerow+")">上一页</a>";
    }
    for(var i = 1; i <= totalPage; i ++){
    nPage += "<a class="a" href="#" onclick="goPage("+(i)+','+Pagerow+")">"+i+"</a>";
    }
    if(curPage < totalPage){
    nPage += "<a href="#" onclick="goPage("+(curPage+1)+','+Pagerow+")">下一页</a>";
    }

    //将分页块添加至页面中
    document.getElementById('nav').innerHTML = nPage;

    //改变分页块在当前页时显示的样式
    var a = document.getElementsByClassName('a');
    //当总页数小于10的时候
    if(totalPage <= 10){
    if(curPage == 1){
    // 初始页的样式
    a[0].removeAttribute('href');
    a[0].style.color = '#000';
    a[0].style.border = '0';
    nav.style.left = '16%';
    }else{
    // 当前页的样式
    a[curPage-1].removeAttribute('href');
    a[curPage-1].style.color = '#000';
    a[curPage-1].style.border = '0';
    nav.style.left = '10%';
    }
    }

    //当总页数大于10的时候
    if(totalPage > 10){
    // 先让10之后的分页块隐藏
    for(var i = 10; i < totalPage; i ++){
    a[i].style.display = 'none';
    }
    if(curPage <= 10){
    if(curPage == 1){
    // 初始页的样式
    a[0].removeAttribute('href');
    a[0].style.color = '#000';
    a[0].style.border = '0';
    nav.style.left = '16%';
    }else{
    // 当前页的样式
    a[curPage-1].removeAttribute('href');
    a[curPage-1].style.color = '#000';
    a[curPage-1].style.border = '0';
    nav.style.left = '10%';
    }
    }
    // 当前页大于6后的情况
    if(curPage > 6){
    for(var i = 0; i < totalPage; i ++){
    a[i].style.display = 'inline-block';
    }
    // 每往后退一页,前面少一页
    for(var i = 0; i < curPage - 6; i ++){
    a[i].style.display = 'none';
    }
    // 每往后退一页,后面加一页
    for(var i = curPage + 4; i < totalPage; i ++){
    a[i].style.display = 'none';
    }
    // 当前页的样式
    a[curPage-1].removeAttribute('href');
    a[curPage-1].style.color = '#000';
    a[curPage-1].style.border = '0';
    nav.style.left = '10%';
    // 当快到尾页时,显示的也是10个分页块
    if(curPage > totalPage - 5){
    for(var i = totalPage - 10; i < totalPage; i ++){
    a[i].style.display = 'inline-block';
    }
    }
    }
    }
    }
    // 页面加载完毕后,进行分页
    window.onload = function(){
    goPage(1,2)
    }
    </script>
    </body>
    </html>

  • 相关阅读:
    给最小化托盘增加右键菜单
    (转)c#实现开机自启动
    Socket代码
    (转)C# Socket简单例子(服务器与客户端通信)
    (转)C# Socket异步通信
    (转)winform pictureBox后台显示图片
    验证DataGridView单元格的值
    批处理判断是否有.net环境
    Winform判断是否已启动
    linux 下 apache启动、停止、重启命令
  • 原文地址:https://www.cnblogs.com/awei313558147/p/11577173.html
Copyright © 2011-2022 走看看