当前位置:首页 > JavaScript

js前端实现分页

2026-01-30 17:19:17JavaScript

分页实现方法

基于数组的分页

假设有一个数据数组需要分页显示,可以通过以下方式实现:

const data = [...]; // 原始数据数组
const pageSize = 10; // 每页显示数量
let currentPage = 1; // 当前页码

function getPaginatedData() {
  const startIndex = (currentPage - 1) * pageSize;
  const endIndex = startIndex + pageSize;
  return data.slice(startIndex, endIndex);
}

分页组件实现

创建一个分页UI组件,通常包含页码按钮和导航控制:

function renderPagination(totalItems, pageSize, currentPage) {
  const totalPages = Math.ceil(totalItems / pageSize);
  const paginationContainer = document.getElementById('pagination');

  let html = '';
  if (currentPage > 1) {
    html += `<button onclick="changePage(${currentPage - 1})">上一页</button>`;
  }

  for (let i = 1; i <= totalPages; i++) {
    html += `<button class="${i === currentPage ? 'active' : ''}" 
             onclick="changePage(${i})">${i}</button>`;
  }

  if (currentPage < totalPages) {
    html += `<button onclick="changePage(${currentPage + 1})">下一页</button>`;
  }

  paginationContainer.innerHTML = html;
}

function changePage(page) {
  currentPage = page;
  updateDisplay();
}

结合API的分页

当数据来自后端API时,可以这样处理:

async function fetchPaginatedData(page, size) {
  const response = await fetch(`/api/data?page=${page}&size=${size}`);
  const result = await response.json();
  return {
    data: result.items,
    total: result.totalCount
  };
}

完整示例

整合数据获取和分页显示的完整流程:

let currentPage = 1;
const pageSize = 10;

async function updateDisplay() {
  const { data, total } = await fetchPaginatedData(currentPage, pageSize);
  renderData(data);
  renderPagination(total, pageSize, currentPage);
}

function renderData(items) {
  const container = document.getElementById('data-container');
  container.innerHTML = items.map(item => `
    <div class="item">${item.name}</div>
  `).join('');
}

分页样式优化

为分页按钮添加基本CSS样式:

#pagination button {
  margin: 0 5px;
  padding: 5px 10px;
  border: 1px solid #ddd;
  background: #fff;
  cursor: pointer;
}

#pagination button.active {
  background: #007bff;
  color: white;
  border-color: #007bff;
}

高级分页功能

对于更复杂的需求,可以考虑:

js前端实现分页

  • 添加页面跳转输入框
  • 实现页面大小选择器
  • 添加总记录数显示
  • 实现省略号显示大量页码时的部分页码

这些方法可以根据具体项目需求进行调整和组合,构建适合应用场景的分页功能。

标签: 分页js
分享给朋友:

相关文章

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

php实现分页功能

php实现分页功能

PHP实现分页功能的方法 数据库查询与分页逻辑 使用SQL的LIMIT和OFFSET实现分页。假设每页显示10条数据,当前页码为$page: $perPage = 10; $page = isset…

js实现分页功能代码

js实现分页功能代码

分页功能实现方法 客户端分页(前端处理数据) 适用于数据量较小且已全部加载到前端的情况。 // 示例数据 const data = Array.from({length: 100}, (_, i)…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…