当前位置:首页 > JavaScript

js实现分页跳转

2026-03-01 09:40:01JavaScript

实现分页跳转的基本逻辑

分页跳转通常需要以下核心功能:计算总页数、渲染分页按钮、处理跳转事件。以下是基于原生JavaScript的实现方法。

计算总页数

根据总数据量和每页显示数量计算总页数:

const totalItems = 100; // 总数据量
const itemsPerPage = 10; // 每页显示数量
const totalPages = Math.ceil(totalItems / itemsPerPage);

渲染分页按钮

动态生成分页按钮的DOM元素:

function renderPagination(currentPage, totalPages) {
  const pagination = document.getElementById('pagination');
  pagination.innerHTML = '';

  // 上一页按钮
  if (currentPage > 1) {
    const prevBtn = document.createElement('button');
    prevBtn.textContent = '上一页';
    prevBtn.addEventListener('click', () => gotoPage(currentPage - 1));
    pagination.appendChild(prevBtn);
  }

  // 页码按钮
  for (let i = 1; i <= totalPages; i++) {
    const pageBtn = document.createElement('button');
    pageBtn.textContent = i;
    if (i === currentPage) {
      pageBtn.classList.add('active');
    }
    pageBtn.addEventListener('click', () => gotoPage(i));
    pagination.appendChild(pageBtn);
  }

  // 下一页按钮
  if (currentPage < totalPages) {
    const nextBtn = document.createElement('button');
    nextBtn.textContent = '下一页';
    nextBtn.addEventListener('click', () => gotoPage(currentPage + 1));
    pagination.appendChild(nextBtn);
  }
}

处理跳转逻辑

实现页面跳转和数据加载功能:

js实现分页跳转

function gotoPage(pageNumber) {
  // 更新当前页码
  currentPage = pageNumber;

  // 重新渲染分页按钮
  renderPagination(currentPage, totalPages);

  // 加载对应页面的数据
  loadPageData(currentPage);
}

function loadPageData(page) {
  const startIndex = (page - 1) * itemsPerPage;
  const endIndex = Math.min(startIndex + itemsPerPage, totalItems);

  // 这里替换为实际的数据获取逻辑
  console.log(`加载第${page}页数据,范围:${startIndex}-${endIndex}`);
}

完整示例代码

<!DOCTYPE html>
<html>
<head>
  <style>
    button.active {
      background-color: #4CAF50;
      color: white;
    }
  </style>
</head>
<body>
  <div id="pagination"></div>
  <div id="content"></div>

  <script>
    const totalItems = 100;
    const itemsPerPage = 10;
    const totalPages = Math.ceil(totalItems / itemsPerPage);
    let currentPage = 1;

    // 初始化
    renderPagination(currentPage, totalPages);
    loadPageData(currentPage);

    function renderPagination(currentPage, totalPages) {
      const pagination = document.getElementById('pagination');
      pagination.innerHTML = '';

      if (currentPage > 1) {
        const prevBtn = document.createElement('button');
        prevBtn.textContent = '上一页';
        prevBtn.addEventListener('click', () => gotoPage(currentPage - 1));
        pagination.appendChild(prevBtn);
      }

      for (let i = 1; i <= totalPages; i++) {
        const pageBtn = document.createElement('button');
        pageBtn.textContent = i;
        if (i === currentPage) {
          pageBtn.classList.add('active');
        }
        pageBtn.addEventListener('click', () => gotoPage(i));
        pagination.appendChild(pageBtn);
      }

      if (currentPage < totalPages) {
        const nextBtn = document.createElement('button');
        nextBtn.textContent = '下一页';
        nextBtn.addEventListener('click', () => gotoPage(currentPage + 1));
        pagination.appendChild(nextBtn);
      }
    }

    function gotoPage(pageNumber) {
      currentPage = pageNumber;
      renderPagination(currentPage, totalPages);
      loadPageData(currentPage);
    }

    function loadPageData(page) {
      const startIndex = (page - 1) * itemsPerPage;
      const endIndex = Math.min(startIndex + itemsPerPage, totalItems);
      document.getElementById('content').textContent = 
        `当前显示第${page}页,数据范围:${startIndex}-${endIndex}`;
    }
  </script>
</body>
</html>

优化建议

  1. 添加页码省略功能(当页数过多时显示部分页码)
  2. 支持直接输入页码跳转
  3. 结合AJAX实现异步数据加载
  4. 添加加载状态提示
  5. 支持URL参数保存当前页码状态

这些方法可以根据实际需求组合使用,构建出适合项目的分页跳转功能。

标签: 分页跳转
分享给朋友:

相关文章

vue  实现分页

vue 实现分页

实现分页的基本思路 在Vue中实现分页通常需要结合后端API返回的数据和前端的分页组件。分页的核心逻辑包括计算总页数、处理当前页码变化以及触发数据请求。 分页组件示例 使用Element UI的分页…

js实现页面跳转

js实现页面跳转

使用 window.location.href 通过修改 window.location.href 属性实现页面跳转: window.location.href = 'https://example…

h5实现登录页面跳转

h5实现登录页面跳转

实现登录页面跳转的基本方法 使用HTML5和JavaScript实现登录页面跳转,可以通过表单提交或JavaScript事件触发。以下是几种常见方式: 表单提交跳转 在HTML中创建一个表单,通过a…

h5实现页面跳转页面

h5实现页面跳转页面

H5 实现页面跳转的方法 在 H5(HTML5)中,实现页面跳转可以通过多种方式完成,以下是常见的几种方法: 使用 <a> 标签 通过 HTML 的 <a> 标签实现页面跳转…

jquery 跳转

jquery 跳转

jQuery 页面跳转方法 使用 jQuery 实现页面跳转可以通过多种方式完成,以下是几种常见的方法: 修改 window.location 属性 // 直接跳转到指定 URL window.l…

vue router实现分页

vue router实现分页

使用 Vue Router 实现分页 在 Vue.js 项目中,可以通过 Vue Router 结合分页组件实现分页功能。以下是实现分页的几种方法: 使用路由参数传递页码 在路由配置中定义一个动态参…