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日

相关文章

  • Java中使用JDBC操作数据库简单实例

    下面是详细的Java中使用JDBC操作数据库的完整攻略。 1. JDBC简介 Java Database Connectivity (JDBC) 是一种能够让Java程序与各种数据库进行连接、查询、更新、插入和删除等操作的API。使用JDBC API进行数据库操作的通常步骤如下: 加载JDBC驱动程序。 建立JDBC连接。 创建JDBC Statement或…

    Java 2023年5月19日
    00
  • LibrarySystem图书管理系统开发(一)

    LibrarySystem图书管理系统开发(一) 概述 本文介绍了一种设计和开发图书管理系统的方法,该系统使用Python编程语言和Django框架开发。 需求 我们的图书管理系统需要具备以下功能: 添加/编辑/删除图书 添加/编辑/删除图书分类 借阅/归还图书 搜索图书 管理员登录 设计 数据库设计 我们需要至少两个相关的数据库表来存储数据: Book 和…

    Java 2023年5月30日
    00
  • Spring Boot 使用 SSE 方式向前端推送数据详解

    在Spring Boot应用程序中,我们可以使用SSE(Server-Sent Events)方式向前端推送数据。SSE是一种基于HTTP协议的轻量级推送技术,它允许服务器向客户端推送数据,而无需客户端发起请求。在本文中,我们将详细讲解如何使用Spring Boot和SSE来实现向前端推送数据。 增加依赖 首先,我们需要在pom.xml文件中增加webflu…

    Java 2023年5月18日
    00
  • 深入讲解Java的对象头与对象组成

    深入讲解Java的对象头与对象组成 在Java中,每个对象都有一个对象头,用来存储对象的元数据信息,同时Java对象也由对象头和实例数据两个部分组成。了解Java对象的组成可以帮助我们更好地理解Java的内存模型。 Java对象的组成 Java对象是由对象头和实例数据两个部分组成的。在64位JVM中,对象头占用16Byte,实例数据大小不定,但至少为8Byt…

    Java 2023年5月26日
    00
  • Java如何将处理完异常之后的程序能够从抛出异常的地点向下执行?

    在 Java 中,可以使用异常处理机制来捕获和处理异常,如果在程序执行过程中抛出了异常,那么程序会立即停止执行。为了解决这个问题,Java 提供了异常处理机制,可以通过捕获异常并处理它们,使得程序能够继续执行下去。 当程序运行时发生异常时,程序会跳转到与异常相符的 catch 语句块,并执行该语句块中的代码,处理完异常后可以通过尝试继续执行下一个块语句来使程…

    Java 2023年5月27日
    00
  • Shell脚本把文件从GBK转为UTF-8编码

    下面我将详细讲解如何通过Shell脚本将GBK编码的文件转为UTF-8编码的文件。 1. 确认文件编码格式 在进行转码操作之前,需要先确认文件的编码格式。可以通过file命令查看文件的编码格式,例如: $ file test.txt test.txt: UTF-8 Unicode text 如果文件的编码格式为GBK,则需要进行转码。 2. 安装iconv …

    Java 2023年6月1日
    00
  • 原来Spring能注入集合和Map的computeIfAbsent是这么好用!

    大家好,我是3y,今天继续来聊我的开源项目austin啊,但实际内容更新不多。这文章主是想吹下水,主要聊聊我在更新项目中学到的小技巧。 今天所说的小技巧可能有很多人都会,但肯定也会有跟我一样之前没用过的。 消息推送平台?推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等消息类型。 https://gitee.com/zhongfuch…

    Java 2023年5月8日
    00
  • Java 输入多行字符串或者多个int数值的方法

    要输入多行字符串或者多个int数值,可以使用Java的Scanner类。Scanner类可以通过System.in从键盘获取输入,也可以从文件、字符串等中获取输入。 输入多行字符串 如果需要输入多行字符串,可以使用Scanner类的nextLine()方法。为了避免输入时出现死循环,可以在输入的第一行加入一个数字,表示接下来要输入几行字符串。 下面是一个输入…

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