当前位置:首页 > 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
分享给朋友:

相关文章

vue实现分页功能

vue实现分页功能

实现分页功能的基本思路 在Vue中实现分页功能通常需要结合后端API或前端数据处理。分页的核心逻辑包括计算总页数、当前页数据切片、页码切换事件处理等。以下是两种常见实现方式。 基于前端数据的分页…

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…

php实现分页

php实现分页

PHP实现分页的基本方法 使用原生PHP实现分页功能需要结合数据库查询和HTML展示。以下是核心实现步骤: 数据库查询与分页逻辑 // 连接数据库 $conn = new mysqli('lo…

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterv…

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

vue前端分页怎么实现

vue前端分页怎么实现

使用 Element UI 的分页组件 Element UI 提供了现成的分页组件 <el-pagination>,可以快速实现分页功能。需要安装 Element UI 并注册组件。…