JavaScript实现翻页功能(附效果图)

下面是详细的“JavaScript实现翻页功能(附效果图)”完整攻略。

1. 准备工作

在实现之前,需要准备以下内容:

  1. HTML 页面中的内容需要做好分页。
  2. 在页面中添加用来显示翻页效果的 HTML 元素。
  3. 确定每页需要显示的数据数量。
  4. 翻页元素的样式。

2. 翻页效果实现步骤

接下来,我们开始实现 JavaScript 翻页功能。

2.1. 获取数据

首先,需要从网页中获取需要翻页的数据。

const items = document.querySelectorAll('.item');

这里使用 querySelectorAll() 方法获取页面中所有 class 为 item 的元素,并将其存储在数组 items 中。

2.2. 分页处理

将获取到的数据进行分页处理,计算每页需要显示的数据数量。

const pageSize = 6;  // 每页需要显示的数据数量
const pageCount = Math.ceil(items.length / pageSize);  // 总页数

这里可以根据实际需要调整每页显示的数据数量。

2.3. 显示第一页内容

在页面加载完成后,需要通过 JavaScript 显示第一页的内容。

const current = 1;  // 当前页码
showPage(current);

这里通过 showPage(current) 方法来显示当前页的内容。

2.4. 显示分页元素

接下来,需要在页面中显示分页元素,以供用户进行翻页操作。

const pagelist = document.createElement('ul');  // 创建分页元素
pagelist.className = 'pagination';  // 添加 CSS 样式
for (let i = 1; i <= pageCount; i++) {
  const li = document.createElement('li');  // 创建分页按钮
  const link = document.createElement('a');  // 创建分页链接
  link.href = '#';  // 链接地址
  link.innerHTML = i;  // 链接文字
  if (i === current) {
    li.className = 'active';  // 当前页的样式
  }
  li.appendChild(link);  // 添加链接到按钮元素
  pagelist.appendChild(li);  // 添加按钮元素到分页元素
}

这里通过 for 循环和 DOM 操作来生成分页按钮,并给当前页码添加样式。

2.5. 绑定翻页事件

最后,需要为分页按钮绑定翻页事件,实现用户点击分页按钮后切换页面内容。

pagelist.addEventListener('click', function(e) {
  const target = e.target;
  if (target.nodeName === 'A') {
    e.preventDefault();  // 防止链接跳转
    const page = parseInt(target.innerHTML);  // 获取点击的页码
    showPage(page);  // 显示指定页内容
  }
});

这里通过事件委托的方式,为分页元素添加点击事件,并在事件处理函数中获取点击的页码,显示指定页内容。

2.6. 完整代码

下面是完整的实现代码。

const items = document.querySelectorAll('.item');
const pageSize = 6;
const pageCount = Math.ceil(items.length / pageSize);
const current = 1;

// 显示指定页内容
function showPage(page) {
  const start = (page - 1) * pageSize;
  const end = start + pageSize;
  for (let i = 0; i < items.length; i++) {
    if (i >= start && i < end) {
      items[i].style.display = 'block';
    } else {
      items[i].style.display = 'none';
    }
  }
  const lis = document.querySelectorAll('.pagination li');
  for (let i = 0; i < lis.length; i++) {
    const link = lis[i].querySelector('a');
    if (link.innerHTML === page.toString()) {
      lis[i].className = 'active';
    } else {
      lis[i].className = '';
    }
  }
}

// 初始化分页元素
const pagelist = document.createElement('ul');
pagelist.className = 'pagination';
for (let i = 1; i <= pageCount; i++) {
  const li = document.createElement('li');
  const link = document.createElement('a');
  link.href = '#';
  link.innerHTML = i;
  if (i === current) {
    li.className = 'active';
  }
  li.appendChild(link);
  pagelist.appendChild(li);
}

// 添加分页元素到页面
const container = document.querySelector('.container');
container.appendChild(pagelist);

// 绑定分页按钮点击事件
pagelist.addEventListener('click', function(e) {
  const target = e.target;
  if (target.nodeName === 'A') {
    e.preventDefault();
    const page = parseInt(target.innerHTML);
    showPage(page);
  }
});

// 显示第一页内容
showPage(current);

3. 示例说明

示例1:实现“上一页”按钮

这里的“上一页”按钮可以让用户在当前页的基础上向前翻一页。

实现代码:

const previous = document.createElement('li');
previous.className = 'previous';
previous.innerHTML = '<a href="#">上一页</a>';
pagelist.insertBefore(previous, pagelist.firstChild);

previous.addEventListener('click', function(e) {
  e.preventDefault();
  const current = parseInt(document.querySelector('.pagination li.active a').innerHTML);
  if (current > 1) {
    showPage(current - 1);
  }
});

这里通过在分页元素前添加一个“上一页”按钮,然后绑定点击事件,在事件处理函数中获取当前页码,然后显示当前页码的上一页。

示例2:实现“下拉列表”选择分页

下拉列表能够让用户快速选择需要查看的页码。

实现代码:

const select = document.createElement('select');
for (let i = 1; i <= pageCount; i++) {
  const option = document.createElement('option');
  option.value = i;
  option.innerHTML = i;
  select.appendChild(option);
}
container.appendChild(select);

select.addEventListener('change', function(e) {
  const page = parseInt(this.value);
  showPage(page);
});

这里通过循环添加选项,然后将下拉列表添加到页面中,绑定 change 事件,获取选择的页码并显示对应内容。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript实现翻页功能(附效果图) - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • tomcat漏洞汇总

    Tomcat漏洞汇总 简介 Tomcat是Apache Foundation下的一个开源的Web服务器,在Web应用的开发中使用非常普遍。然而,Tomcat在使用过程中会存在各种漏洞,这些漏洞可能会导致服务器遭到攻击。 该文章旨在汇总Tomcat中的一些漏洞,并提供相关的解决方案和示例。 漏洞及解决方案 未授权访问 攻击者可以通过未授权访问进入Tomcat的…

    Java 2023年6月2日
    00
  • 如何用120行Java代码写一个自己的区块链

    下面是详细讲解如何用120行Java代码写一个自己的区块链的攻略。 第一步:搭建基础框架 首先,我们需要创建一个名为Blockchain的类,代码如下: import java.util.ArrayList; public class Blockchain { ArrayList<Block> chain = new ArrayList<B…

    Java 2023年5月26日
    00
  • Javaweb实现完整个人博客系统流程

    下面是“Javaweb实现完整个人博客系统流程”的完整攻略。 1. 前期准备 1.1 确定需求 在开发博客系统前,需要明确自己的需求方向,比如博客的主题、功能等。可以参考现有的博客系统,以此为基础进行需求收集和分析。 1.2 确定技术方案 开发博客,需要选择相应的技术方案,包括但不限于服务器、数据库、前端框架、后端框架等等。可以参考现有的博客系统,以此为基础…

    Java 2023年5月20日
    00
  • Spring interceptor拦截器配置及用法解析

    下面是“Spring interceptor拦截器配置及用法解析”的完整攻略。 1. 什么是 Spring Interceptor Spring Interceptor是一个在Spring MVC框架中,拦截处理程序请求、处理程序响应或者处理程序处理过程中发生的事件。拦截器与过滤器类似,但是更加灵活。它们能够获取请求的详细信息,包括请求的URI、请求的方法等…

    Java 2023年5月31日
    00
  • 基于Ajax技术实现文件上传带进度条

    实现基于Ajax技术的文件上传带进度条,需要进行以下步骤: 1.引入jQuery和jQuery.form插件 在HTML文件中通过script标签引入jQuery和jQuery.form插件,可以通过CDN地址引入,也可以将文件下载到本地后引入。 示例: <script src="https://cdn.bootcdn.net/ajax/li…

    Java 2023年6月15日
    00
  • Java性能调优的作用是什么?

    Java性能调优的作用是为了提高Java应用程序的性能,使其能够更高效、更稳定地运行。通过调优,我们可以识别性能瓶颈所在,并使用合适的优化方法来解决问题,从而提高应用程序的响应速度、吞吐量和资源利用率,减少内存占用和CPU负载等问题。 下面是Java性能调优的完整使用攻略: 1. 确认性能问题 在开始性能调优之前,首先要确定是否存在性能问题。性能问题主要体现…

    Java 2023年5月11日
    00
  • Java数组(Array)最全汇总(上篇)

    Java数组(Array)最全汇总(上篇)攻略 为什么要学习Java数组? Java数组是Java编程中基本的数据结构之一。在Java中,我们使用数组来存储和操作一组相同类型的数据。使用数组可以更高效地处理大量的数据,提高程序的性能。 Java数组的基本概念 Java数组是一个包含相同数据类型的数据结构。在Java中,我们可以使用以下语法定义一个数组: da…

    Java 2023年5月26日
    00
  • nginx实现动静分离的示例代码

    要实现动静分离,即将静态资源和动态请求分别交给不同的服务器或处理方式处理,可以通过Nginx来实现。下面是实现动静分离的完整步骤: 安装Nginx 首先需要安装Nginx,可以通过命令行或者下载安装包来完成,具体可以参考Nginx官网的安装文档。 配置Nginx Nginx的配置文件一般在/etc/nginx/nginx.conf中,需要编辑该文件进行配置。…

    Java 2023年6月16日
    00
合作推广
合作推广
分享本页
返回顶部