当前位置:首页 > JavaScript

js实现分页跳转

2026-03-01 09:40:01JavaScript

实现分页跳转的基本逻辑

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

js实现分页跳转

计算总页数

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

js实现分页跳转

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);
  }
}

处理跳转逻辑

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

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组件传值实现分页的方法 在Vue中实现分页功能,通常需要父子组件之间的数据传递。以下是几种常见的传值方式: 使用props传递数据 父组件通过props向子组件传递当前页码和总页数等分页信息…

js实现页面跳转

js实现页面跳转

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

h5实现登录页面跳转页面跳转页面跳转

h5实现登录页面跳转页面跳转页面跳转

使用HTML5实现登录页面跳转 在HTML5中实现登录页面跳转可以通过多种方式完成,包括表单提交、JavaScript跳转和超链接跳转。以下是几种常见的实现方法。 表单提交跳转 使用HTML表单的a…

react 如何分页

react 如何分页

分页实现方法 在React中实现分页功能可以通过多种方式完成,具体取决于数据来源(如API或本地数据)和UI库的选择。以下是常见的实现方法: 使用本地数据分页 对于存储在组件状态或Contex…

vue实现分页条数

vue实现分页条数

Vue 实现分页条数控制 在 Vue 中实现分页条数控制通常需要结合分页组件和后端 API 支持。以下是几种常见的实现方式: 使用 Element UI 的分页组件 Element UI 提供了强大…

vue实现后台分页

vue实现后台分页

Vue 实现后台分页的方法 分页组件与数据绑定 在 Vue 中实现后台分页通常需要结合分页组件和后端 API。使用 el-pagination(Element UI)或自定义分页组件,通过 v-mod…