js分页(优化)

简介: js分页(优化)

css样式:

<style type="text/css">
      #table_select {
        width: 96%;
        /* height: ; */
        /* background-color: yellow; */
        padding: 0px 2% 0px 2%;
      }
      #select_inner {
        width: 100%;
        height: 45px;
        /* background-color: red; */
        border-bottom: 1px solid #E4E7ED;
        display: flex;
        color: #909399;
        font-size: 14px;
      }
      #select_border input {
        background-color: transparent;
        /* border-color: rgb(210, 213, 216); */
        border: 1px solid red;
        width: 15px;
        height: 15px;
        outline: none;
      }
      #select_border {
        width: 3%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        user-select: none;
      }
      #select_id {
        width: 4.1%;
        height: 100%;
        /* background-color: yellow; */
        display: flex;
        align-items: center;
        justify-content: center;
        user-select: none;
      }
      #select_id_inner {
        width: 4%;
        height: 100%;
        /* background-color: yellow; */
        display: flex;
        align-items: center;
        justify-content: center;
        user-select: none;
      }
      #select_name_inner {
        width: 14.1%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        user-select: none;
      }
      #identity_card {
        width: 11.1%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        user-select: none;
      }
      #customer {
        width: 14.1%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        user-select: none;
      }
      #contract {
        width: 8%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        user-select: none;
      }
      #employment_form {
        width: 11.1%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        user-select: none;
      }
      #item_located {
        width: 11.1%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        user-select: none;
      }
      #before_the_post {
        width: 11.1%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        user-select: none;
      }
      #level_inner {
        width: 8.1%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        user-select: none;
      }
      .select_table {
        width: 100%;
        height: 45px;
        /* background-color: red; */
        border-bottom: 1px solid #E4E7ED;
        display: flex;
        color: #5b5d61;
        font-size: 14.3px;
        transition: 0.2s;
      }
      .select_table:hover {
        background-color: #F5F7FA;
        transition: 0.2s;
      }
      #form {
        width: 100%;
        height: 570px;
        /* background-color: #409EFF; */
        overflow-y: scroll;
        overflow-x: scroll;
        border-bottom: 1px solid #E4E7ED;
      }
      #form::-webkit-scrollbar {
        display: none
      }
      .form_table {
        width: 100%;
        height: 48px;
        border-bottom: 1px solid #E4E7ED;
        display: flex;
        color: #5b5d61;
        font-size: 14.3px;
        transition: 0.2s;
      }
      .form_table:hover {
        background-color: #F5F7FA;
        transition: 0.2s;
      }
      .form_tabta {
        width: 100%;
        height: 48px;
        border-bottom: 1px solid #E4E7ED;
        display: flex;
        color: #5b5d61;
        font-size: 14.3px;
        transition: 0.2s;
        background-color: #E47470;
      }
      .form_tabta:hover {
        background-color: #F5F7FA;
        transition: 0.2s;
      }
      #form_chechbox {
        width: 3%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      #form_chechbox input {
        background-color: transparent;
        /* border-color: rgb(210, 213, 216); */
        border: 1px solid red;
        width: 15px;
        height: 15px;
        outline: none;
      }
      #form_id {
        width: 5%;
        height: 100%;
        /* background-color: yellow; */
        display: flex;
        align-items: center;
        justify-content: center;
      }
      #form_name {
        width: 7%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      #form_identity {
        width: 12%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      #form_Telephone {
        width: 10%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      #form_contract {
        width: 8%;
        height: 100%;
        align-items: center;
        justify-content: center;
        text-align: center;
        line-height: 23px;
      }
      #form_employment {
        width: 10%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      #form_item {
        width: 10%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      #fork_beforepost {
        width: 8%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      #form_stalls {
        width: 8%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      #form_status {
        width: 9%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      #form_operate {
        width: 10%;
        height: 100%;
        /* display: flex; */
        align-items: center;
        justify-content: center;
        /* margin-left:%; */
      }
      #form_operate button {
        width: 78px;
        height: 32px;
        background-color: #409EFF;
        /* background-color: red; */
        border-radius: 5px;
        color: white;
        border: none;
        outline: none;
        /* display: flex; */
        align-items: center;
        justify-content: center;
        cursor: pointer;
        margin-left: 25%;
        margin-top: 6%;
      }
      #form_operate img {
        width: 13px;
        height: 13px;
        margin-left: 5px;
      }
      #select_font {
        transition: 0.1s;
        width: 78px;
        height: 95px;
        background-color: #FFFFFF;
        /* position: absolute; */
        position: relative;
        /* margin-top: 140px; */
        display: none;
        /* position: relative; */
        /* margin-top: 7px; */
        border-radius: 10px;
        box-shadow: 0 0 10px rgb(0 0 0 / 20%);
        z-index: 999;
        margin-left: 25%;
        padding-top: 10px;
      }
      #form_operate button:hover {
        background-color: rgba(64, 158, 255, 0.8);
      }
      #form_operate:hover #select_font {
        transition: 0.1s;
        display: block;
      }
      .select {
        width: 100%;
        height: 30px;
        background-color: #FFFFFF;
        display: flex;
        align-items: center;
        justify-content: center;
        color: red;
        cursor: pointer;
      }
      .select:hover {
        background-color: #F2F5FF;
      }
      .select_font:hover {
        background-color: #F2F5FF;
        color: rgb(126, 156, 255);
      }
      .select_font {
        width: 100%;
        height: 30px;
        background-color: #FFFFFF;
        color: #19191b;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
      }
      .detail {
        width: 100%;
        height: 30px;
        cursor: pointer;
        /* background-color: red; */
        display: flex;
        align-items: center;
        justify-content: center;
        color: #5b5d6;
      }
      .detail:hover {
        background-color: #ECF5FF;
        color: #7e9cff;
      }
      #page_footer {
        width: 100%;
        height: 32px;
        display: flex;
        /* background-color: red; */
        align-items: center;
        justify-content: center;
      }
      #page_footer p {
        font-size: 14px;
        color: #5b5d61;
        margin-left: 10px;
      }
      #page_footer input {
        width: 50px;
        height: 100%;
        margin-left: 10px;
        color: #909399;
        background-color: transparent;
        outline: none;
        border: none;
        border-radius: 4px;
        border: 1px solid #E4E7ED;
        text-align: center;
      }
      .button_but {
        width: 32px;
        height: 32px;
        border: none;
        outline: none;
        background-color: #F0F2F5;
        color: #5b5d61;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-left: 10px;
      }
      #but {
        display: flex;
        height: 32px;
      }
      #but div {
        background-color: #F0F2F5;
        color: #5b5d61;
        display: flex;
        align-items: center;
        justify-content: center;
        height: 100%;
        margin-left: 10px;
      }
      #but div:hover {
        color: #409EFF;
      }
      #page_footer select {
        width: 120px;
        height: 20px;
        /* border: none; */
        color: #909399;
        background-color: transparent;
        outline: none;
        border-radius: 4px;
        border-color: #E4E7ED;
      }
      .button_but:hover {
        color: #409EFF;
      }
    </style>

html结构:

<div id="table_select">
      <div id="select_inner">
        <div id="select_id">
          <input type="checkbox" name="" id="">
        </div>
        <div id="select_id_inner">
          <b>id</b>
        </div>
        <div id="select_name_inner">
          <b>项目名称</b>
        </div>
        <div id="identity_card">
          <b>负责人</b>
        </div>
        <div id="customer">
          <b>劳资员</b>
        </div>
        <div id="contract">
          <b>项目人数</b>
        </div>
        <div id="employment_form">
          <b>立项时间</b>
        </div>
        <div id="item_located">
          <b>负责人电话</b>
        </div>
        <div id="before_the_post">
          <b>项目部地址</b>
        </div>
        <div id="level_inner">
          <b>操作</b>
        </div>
      </div>
      <div id="form">
      </div>
      <div style="height: 130px;width: 100%;display: flex;align-items: center;">
        <div id="page_footer">
          <select id="number_select">
            <option value="10">10条/页</option>
            <option value="5">5条/页</option>
            <option value="30">30条/页</option>
          </select>
          <p>共<span id="common"></span>条</p>
          <div class="button_but" onclick="bou()">
          </div>
          <div id="but">
          </div>
          <div class="button_but" onclick="bottom()">》</div>
          <p>前往</p> <input type="text" class="input-text" value=""
            onkeyup="value=value.replace(/[\u4E00-\u9FA5]|[A-Za-z]/g,'')" id="price" name="price"
            id="title_number">
          <p>页</p>
        </div>
      </div>
    </div>

js

<script type="text/javascript">
      let page = {
        pageSize: 10, //每页多少条数据
        currentPage: 1, //第几页
        total: 0, //总共有多少条数据
      };
      let title_number = document.getElementById('title_number');
      let number_select = document.getElementById('number_select');
      let pages_number;
      let viewData = []; //页面要渲染的数据
      number_select.onchange = function() {
        // console.log(number_select.value);
        page.pageSize = number_select.value;
        title()
        console.log(page.pageSize);
      }
      let price = document.getElementById('price');
      // 总页数
      let jump;
      price.onchange = function() {
        // input数字
        let price_val = document.getElementById('price').value;
        // title()
        if (price_val > 1 && price_val <= jump) {
          title()
          page.currentPage = price_val;
        }
        if (price_val < 1) {
          price_val = 1;
        }
        if (price_val > jump) {
          alert('暂无此页')
        }
      }
      function title() {
        // 渲染数据
        $.ajax({
          url: "http://labour.kuxia.top/api/Staff/staff_info",
          type: "POST",
          data: {
            sign: '3',
            id: '1',
            pid: '1',
            admin_id: '1',
            admin_name: '超级管理员'
          },
          success: function(data) {
            console.log(data);
            jump = Math.ceil(data.info.length / page.pageSize);
            $("#common").html(data.info.length)
            page.total = data.info.length; //页面要显示的数据总条数
            // viewData = data.info.slice((page.currentPage - 1) * page.pageSize, page.pageSize + ((page
            //    .currentPage - 1) * page
            //  .pageSize)); //这里就是截取出来第一页的十条数据
            viewData = data.info.slice((page.currentPage - 1) * page.pageSize, page.currentPage * page
              .pageSize);
            console.log(viewData);
            let data_inner = '';
            for (let i = 0; i < viewData.length; i++) {
              if (viewData[i].grade == null) {
                data_inner += `<div class="form_tabta">
                                          <div id="form_chechbox">
                                            <input type="checkbox" name="" id="">
                                          </div>
                                          <div id="form_id">
                                            <span>${viewData[i].id}</span>
                                          </div>
                                          <div id="form_name">
                                            <span>${viewData[i].name}</span>
                                          </div>
                                          <div id="form_identity">
                                            <span>${viewData[i].id_number}</span>
                                          </div>
                                          <div id="form_Telephone">
                                            <span>${viewData[i].tel}</span>
                                          </div>
                                          <div id="form_contract">
                                            <p>${viewData[i].entry_time}</p>
                                            <p>${viewData[i].graduation_date}</p>
                                          </div>
                                          <div id="form_employment">
                                            <span>${viewData[i].title}</span>
                                          </div>`;
                if (viewData[i].pname != null) {
                  data_inner += `<div id="form_item">
                                              <span>${viewData[i].pname}</span>
                                            </div>`
                } else if (viewData[i].pname == null) {
                  data_inner += `<div id="form_item">
                                              <span></span>
                                            </div>`
                }
                data_inner += `<div id="fork_beforepost">
                                            <span>${viewData[i].jobs}</span>
                                          </div>`;
                if (viewData[i].grade == null) {
                  data_inner += `<div id="form_stalls">
                                              <span></span>
                                            </div>`
                } else if (viewData[i].grade != null) {
                  data_inner += `<div id="form_stalls">
                                            <span>${viewData[i].grade}</span>
                                          </div>`;
                }
                if (viewData[i].status == '在职') {
                  data_inner +=
                    `<div id="form_status"><span style="color: rgb(126, 156, 255);">${viewData[i].status}</span></div>`
                } else if (viewData[i].status == '离职') {
                  data_inner +=
                    `<div id="form_status"><span style="color: rgb(220, 20, 60);">${viewData[i].status}</span></div>`
                }
                data_inner += `<div id="form_operate">
                            <button>更多<img src="img/errowimg.png" alt=""></button>
                                            <div id="select_font">
                                          <div class="select_font">详情</div>
                                              <div class="select_font">编辑</div>
                                              <div class="select" onclick="dale(${viewData[i].id})">删除</div>
                                              <div class="select">拉黑</div>
                                            </div>
                                            </div>
                                        </div>`;
              } else if (viewData[i].grade != null) {
                data_inner += `<div class="form_table">
                              <div id="form_chechbox">
                                <input type="checkbox" name="" id="">
                              </div>
                              <div id="form_id">
                                <span>${viewData[i].id}</span>
                              </div>
                              <div id="form_name">
                                <span>${viewData[i].name}</span>
                              </div>
                              <div id="form_identity">
                                <span>${viewData[i].id_number}</span>
                              </div>
                              <div id="form_Telephone">
                                <span>${viewData[i].tel}</span>
                              </div>
                              <div id="form_contract">
                                <p>${viewData[i].entry_time}</p>
                                <p>${viewData[i].graduation_date}</p>
                              </div>
                              <div id="form_employment">
                                <span>${viewData[i].title}</span>
                              </div>`
                if (viewData[i].pname != null) {
                  data_inner += `<div id="form_item">
                                                            <span>${viewData[i].pname}</span>
                                                          </div>`
                } else if (viewData[i].pname == null) {
                  data_inner += `<div id="form_item">
                                                            <span></span>
                                                          </div>`
                }
                data_inner += `<div id="fork_beforepost">
                                <span>${viewData[i].jobs}</span>
                              </div>`;
                if (viewData[i].grade == null) {
                  data_inner += `<div id="form_stalls">
                                  <span></span>
                                </div>`
                } else if (viewData[i].grade != null) {
                  data_inner += `<div id="form_stalls">
                                <span>${viewData[i].grade}</span>
                              </div>`;
                }
                if (viewData[i].status == '在职') {
                  data_inner +=
                    `<div id="form_status"><span style="color: rgb(126, 156, 255);">${viewData[i].status}</span></div>`
                } else if (viewData[i].status == '离职') {
                  data_inner +=
                    `<div id="form_status"><span style="color: rgb(220, 20, 60);">${viewData[i].status}</span></div>`
                }
                data_inner += `<div id="form_operate">
                <button>更多<img src="img/errowimg.png" alt=""></button>
                                <div id="select_font">
                                  <div class="select_font">详情</div>
                                  <div class="select_font">编辑</div>
                                  <div class="select" onclick="dale(${viewData[i].id})">删除</div>
                                  <div class="select">拉黑</div>
                                </div>
                                </div>
                            </div>`;
              }
            }
            $("#form").html(data_inner)
            let Pagecount = Math.ceil(data.info.length / page.pageSize);
            // console.log(Pagecount);
            let three = "";
            for (let i = 0; i < Pagecount; i++) {
              let is = i + 1;
              if (page.currentPage - 1 == i) {
                three += '<div onclick="previous_span(' + i +
                  ')" class="span_iner" style="background-color: #409EFF;width:2vw;color:white">' +
                  is + '</div> ';
              } else {
                three += '<div onclick="previous_span(' + i +
                  ')" style="width:2vw;background-color:#F0F2F5;" class="span_iner">' + is +
                  '</div> ';
              }
            }
            $("#but").html(three)
          },
        })
      }
      title()
      // 上一页
      function bou() {
        if (page.currentPage > 1) {
          page.currentPage--;
          console.log(page.currentPage);
          title()
        } else if (page.currentPage == 1) {
          alert('第一页')
        }
      }
      // 下一页
      function bottom() {
        console.log(page.total);
        console.log(Math.ceil(page.total / page.pageSize));
        if (page.currentPage != Math.ceil(page.total / page.pageSize)) { //判断当前页面不等于总条数除于每页多少条
          page.currentPage++;
          title()
        } else if (page.currentPage == Math.ceil(page.total / page.pageSize)) { //判断当前页面等于总条数除于每页多少条
          alert('最后一页')
        }
      }
      // 点击哪个数字跳到相应的页数
      function previous_span(i) {
        // let price_val = document.getElementById('price').innerText;
        // console.log(price_val);
        // price_val = 2;
        // console.log(price_val);
        let span_iner = document.getElementsByClassName('span_iner');
        page.currentPage = i + 1;
        console.log(page.currentPage);
        title()
      }
    </script>

ps:这里面使用的是接口,需吧接口和数据修改即可!!!

相关文章
|
前端开发 JavaScript Java
JavaScript闭包深入剖析:性能剖析与优化技巧
JavaScript 闭包是强大而灵活的特性,广泛应用于数据封装、函数柯里化和事件处理等场景。闭包通过保存外部作用域的变量,实现了私有变量和方法的创建,提升了代码的安全性和可维护性。然而,闭包也可能带来性能问题,如内存泄漏和执行效率下降。为优化闭包性能,建议采取以下策略:及时解除对不再使用的闭包变量的引用,减少闭包的创建次数,使用 WeakMap 管理弱引用,以及优化闭包结构以减少作用域链查找的开销。在实际开发中,无论是 Web 前端还是 Node.js 后端,这些优化措施都能显著提升程序的性能和稳定性。
323 70
|
存储 缓存 监控
如何使用内存监控工具来优化 Node.js 应用的性能
需要注意的是,不同的内存监控工具可能具有不同的功能和特点,在使用时需要根据具体工具的要求和操作指南进行正确使用和分析。
693 158
|
11月前
|
监控 算法 JavaScript
公司局域网管理视域下 Node.js 图算法的深度应用研究:拓扑结构建模与流量优化策略探析
本文探讨了图论算法在公司局域网管理中的应用,针对设备互联复杂、流量调度低效及安全监控困难等问题,提出基于图论的解决方案。通过节点与边建模局域网拓扑结构,利用DFS/BFS实现设备快速发现,Dijkstra算法优化流量路径,社区检测算法识别安全风险。结合WorkWin软件实例,展示了算法在设备管理、流量调度与安全监控中的价值,为智能化局域网管理提供了理论与实践指导。
272 3
|
JavaScript 前端开发
如何使用时间切片来优化JavaScript动画的性能?
如何使用时间切片来优化JavaScript动画的性能?
505 158
|
JavaScript 前端开发
JavaScript分页功能
JavaScript分页功能
|
10月前
|
JavaScript
JS代码的一些常用优化写法
JS代码的一些常用优化写法
170 0
|
前端开发 JavaScript
【Javascript系列】Terser除了压缩代码之外,还有优化代码的功能
Terser 是一款广泛应用于前端开发的 JavaScript 解析器和压缩工具,常被视为 Uglify-es 的替代品。它不仅能高效压缩代码体积,还能优化代码逻辑,提升可靠性。例如,在调试中发现,Terser 压缩后的代码对删除功能确认框逻辑进行了优化。常用参数包括 `compress`(启用压缩)、`mangle`(变量名混淆)和 `output`(输出配置)。更多高级用法可参考官方文档。
925 11
|
11月前
|
人工智能 监控 前端开发
基于 Next.js 的书法字体生成工具架构设计与 SSR 优化实践
本项目是一款书法字体生成工具,采用 Next.js 14(App Router)与 Tailwind CSS 构建前端,阿里云 Serverless 部署后端。通过混合渲染策略(SSG/SSR/CSR)、Web Worker 异步计算及 CDN 字体分片加载优化性能。服务端借助阿里云函数计算处理计算密集型任务,将平均耗时从 1200ms 降至 280ms,支持 1000+ QPS。动态路由与 ARMS 监控提升工程化水平,未来计划引入 WebGPU 和 AI 字体风格迁移技术,进一步优化用户体验。
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
579 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子