当前位置:首页 > 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组件,通常包含页码按钮和导航控制:

js前端实现分页

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

完整示例

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

js前端实现分页

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实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…