分页功能制作

news/2024/4/27 16:28:36/文章来源:https://blog.csdn.net/2301_81449444/article/details/137068484

 使用HTML,css,js和json假数据制作分页功能。

以下为分页功能结构,下面可以点击上一页,下一页及数字,还可以自己输入想要跳转的页面点击跳转。下面每页显示的内容也会跟着改变。还可以选择不同的每页显示数据的条数。默认为每页五条数据。 

 HTML结构:

<body><table border="1px" style=text-align="center" cellpadding="10" cellspacing="0"><thead><tr><th class="caption">姓名</td><th class="caption">年龄</td><th class="caption">性别</td><th class="caption">爱好</td></tr></thead><tbody><tr class="content"><!-- <td>123</td><td>123</td><td>123</td><td>123</td> --></tr></tbody></table><!-- 上一页 --><div class="page"><div class="prev">上一页</div><p class="num">1</p><div class="prev">下一页</div><input class="Afew" /><div class="tar">跳转</div></div><!-- 显示几条数据 --><div class="footer"><p>显示第</p><p class="first">x</p><p>到第</p><p class="second">x</p><p>条数据;</p><p>总共</p><p class="all">x</p><p>条数据;</p><select class="selects"><option style="border: 1px #e9e9de;" value="5" class="option">每页5条</option><option value="10">每页10条</option><option value="15">每页15条</option><option value="20">每页20条</option><option value="30">每页30条</option></select><p>数据</p></div><!-- 提示框 --><div class="prompt"><div class="prompt_text"></div></div><script src="js/paging.js"></script></body>

css样式:

<style>* {margin: 0;padding: 0;}.caption {text-align: center;width: 140px;height: 50px;}td {width: 140px;height: 50px;text-align: center;}.page {display: flex;margin-top: 10px;}.prev {width: 80px;height: 40px;text-align: center;line-height: 40px;background-color: #FAFAFA;border: 1px solid #adadad;}.num {width: 40px;height: 40px;text-align: center;line-height: 40px;background-color: #FAFAFA;border: 1px solid #adadad;}.Afew {width: 60px;height: 40px;border: 1px solid #adadad;margin-left: 10px;}.tar {width: 60px;height: 40px;text-align: center;line-height: 40px;background-color: #FAFAFA;border: 1px solid #adadad;margin-left: 10px;}.footer {display: flex;flex-wrap: nowrap;margin-top: 10px;margin-bottom: 20px;}.first {width: 20px;text-align: center;}.second {width: 20px;text-align: center;}.all {width: 20px;text-align: center;}.selects {margin-left: 10px;}.prompt {width: 180px;height: 80px;border: 1px solid #ffaa00;background-color: blanchedalmond;border-radius: 10px;position: fixed;top: 0;left: 15%;display: none;}.prompt_text {font-size: 16px;text-align: center;line-height: 80px;}</style>

js部分:

// 分页功能
// data总数据
let data;
// 总页码
let count_pages;
let xhr = new XMLHttpRequest();
xhr.open('get', 'js/paging.json', true);
xhr.send();
xhr.onreadystatechange = function() {if (xhr.readyState == 4 && xhr.status == 200) {let text = xhr.responseText;// console.log(text);data = JSON.parse(text);console.log(data);item(data);}
};
// 当前所在页面 初始值在第一页 
let k = 0;
// 每页显示多少条 初始值为五条
let nums = 5;function item(data) {// 计算总页面数量count_pages = Math.ceil(data.length / nums);// console.log(count_pages);// 总数据let str = '';// 页码let strs = '';// 遍历数组for (let i = k * nums; i < (k + 1) * nums; i++) {if (data[i] == undefined) {break;}// console.log(data);// 拼接数据内容str += `<tr class="content"><td>${data[i].name}</td><td>${data[i].age}</td><td>${data[i].gender}</td><td>${data[i].hobby}</td></tr>`;};strs += `<div class="prev" onclick="previous()">上一页</div>`;for (let i = 0; i < count_pages; i++) {// 渲染页码 使用三元表达式给选中的变颜色strs +=`<p class="num" onclick="target_pages(${i})" ${k == i?'style="background-color:#ffff7f"':''}>${i+1}</p>`;};strs += `<div class="prev" onclick="down()">下一页</div><input class="Afew" /><div class="tar" onclick="skip()">跳转</div>`;// 显示的第一个数字 页面×页面的条数$(".first").html(k * nums + 1);$(".second").html((k + 1) * nums > data.length ? data.length : (k + 1) * nums);// 显示总数据$(".all").html(data.length);$("tbody").html(str);$(".page").html(strs);
};
// 上一页的点击事件
function previous() {// console.log(111);if (k > 0) {k--;// 调用渲染数据item(data);} else {$(".prompt").show();$(".prompt_text").html('已经是第一页');setTimeout(function() {$(".prompt").hide();}, 1500);}
};
// 数字点击事件
function target_pages(i) {console.log(i + 1);k = i;$(".num").css("background-color", "#ffff7f");$(".num").css("background-color", "#FFFFFF");item(data);
};
// 下一页点击事件
function down() {// k小于总页码if (k < count_pages - 1) {// console.log(k < count_pages);k++;item(data);} else {// 提示框$(".prompt").show();$(".prompt_text").html('已经是最后一页');setTimeout(function() {$(".prompt").hide();}, 1500);}
};
// 点击数字跳转相应页面
function skip() {let inp = document.getElementsByClassName('Afew')[0].value;console.log(inp);// 判断输入框不为空 提示请输入跳转的页码if (inp == '') {// 提示框$(".prompt").show();$(".prompt_text").html('请输入要跳转的页码');setTimeout(function() {$(".prompt").hide();}, 1500);// 判断输入框大于总页码时 提示没有此页码} else if (inp > count_pages) {// 提示框$(".prompt").show();$(".prompt_text").html('没有此页码');setTimeout(function() {$(".prompt").hide();}, 1000);// 判断输入框内的值不为小数 不为负数和0} else if (inp % 1 != 0 || inp <= 0) {$(".prompt").show();$(".prompt_text").html('请输入正确页码数');setTimeout(function() {$(".prompt").hide();}, 1000);// 否则就跳转} else {k = inp - 1;};item(data);
};
// 点击下拉框 根据内容渲染页面数据
// 获取下拉框 给下拉框添加
let selects = document.getElementsByClassName('selects')[0];
selects.addEventListener("change", function() {//重新赋值nums = this.value;// 获取现在有的页码count_pages = Math.ceil(data.length / nums);// 判断k是否大于总页码 if (k > count_pages - 1) {k = count_pages - 1;};item(data);
});

json假数据部分,使用数组包对象的方式,共有33条数据:

[{"name": "刘小巍","age": 8,"gender": "女","hobby": "拍视频"
}, {"name": "娄小慧","age": 20,"gender": "女","hobby": "刷视频"
}, {"name": "聂小博","age": 16,"gender": "女","hobby": "听歌"
}, {"name": "赵小康","age": 29,"gender": "男","hobby": "研究"
}, {"name": "张小铭","age": 17,"gender": "男","hobby": "爱追番"
}, {"name": "超超","age": 60,"gender": "男","hobby": "武术"
}, {"name": "董小珊","age": 23,"gender": "女","hobby": "看电视"
}, {"name": "张小俊","age": 35,"gender": "男","hobby": "打火影"
}, {"name": "煎饼果子","age": 50,"gender": "女","hobby": "打电话"
}, {"name": "新疆炒米粉","age": 80,"gender": "女","hobby": "吹牛"
}, {"name": "楼小梦","age": 66,"gender": "女","hobby": "看电影"}, {"name": "娄小明","age": 19,"gender": "男","hobby": "旅游 滑雪"
}, {"name": "娄小文","age": 25,"gender": "女","hobby": "做饭"
}, {"name": "小马","age": 10,"gender": "男","hobby": "跑步"
}, {"name": "冯小轩","age": 66,"gender": "男","hobby": "打篮球"
}, {"name": "囡囡","age": 2,"gender": "女","hobby": "吃罐头"
}, {"name": "墨墨","age": 2,"gender": "男","hobby": "打羽毛球"
}, {"name": "汤圆","age": 4,"gender": "女","hobby": "睡觉"
}, {"name": "沐沐","age": 3,"gender": "女","hobby": "撒花"
}, {"name": "小橘","age": 1,"gender": "男","hobby": "吃冻干"
}, {"name": "kitty","age": 12,"gender": "女","hobby": "跳绳"
}, {"name": "孟小雨","age": 42,"gender": "男","hobby": "撸猫"
}, {"name": "赵小乐","age": 13,"gender": "男","hobby": "读诗"
}, {"name": "张晓兰","age": 71,"gender": "女","hobby": "泡温泉"
}, {"name": "李洵","age": 21,"gender": "男","hobby": "冒险"
}, {"name": "高丽珠","age": 90,"gender": "男","hobby": "吹笛子"
}, {"name": "李金梅","age": 38,"gender": "女","hobby": "弹钢琴"
}, {"name": "蓟娇然","age": 75,"gender": "男","hobby": "游泳"
}, {"name": "池思洁","age": 1,"gender": "男","hobby": "拍照片"
}, {"name": "沈欣瑶","age": 41,"gender": "女","hobby": "工作"
}, {"name": "谭碧灵","age": 52,"gender": "男","hobby": "踢足球"
}, {"name": "权天恩","age": 62,"gender": "女","hobby": "猜字谜"
}, {"name": "谷兰娟","age": 70,"gender": "女","hobby": "坐飞机"
}]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1026603.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python数据实时传给unity工程并绘制出来

python # 服务器端代码 import socket import random import struct import time# 创建一个服务器Socket server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 监听的地址和端口 host 127.0.0.1 port 12345# 绑定地址和端口 server_socket.bind((host, port…

C语言中常用的文件操作

本文将介绍常用的关于文件操作函数&#xff0c;如fopen,fclose,fread,fwrite,feek,ftell,rewind以及feof和ferror等文件操作操作函数&#xff0c;还介绍一些用于所有输入输出流的函数如fgetc,fputc,fgets,fputs,fprintf,fscanf等函数&#xff0c;还介绍了sscanf,sprintf函数,fe…

主流电商平台淘宝/1688/京东电商数据实时采集监测|电商API接口接入

电商大数据平台基于网络主流电商平台淘宝/1688/京东电商数据进行搭建&#xff0c;全面监测了包含淘宝、京东、苏宁、美团、大众点评等共计100余个主流电商交易平台&#xff0c;并凭借多年的电子商务数据分析挖掘经验积累形成的电商数据清洗体系和挖掘模型&#xff0c;能高效完成…

DashVector - 阿里云向量检索服务

DashVector 文章目录 DashVector一、关于 DashVector二、使用 DashVector 前提准备1、创建Cluster&#xff1a;2、获得API-KEY3、安装最新版SDK 三、快速使用 DashVector1. 创建Client2. 创建Collection3、插入Doc4、相似性检索5、删除Doc6. 查看Collection统计信息7. 删除Coll…

Flask 与小程序 的图片数据交互 过程及探讨研究学习

今天不知道怎么的&#xff0c;之前拿编程浪子地作品抄过来粘上用好好的&#xff0c;昨天开始照片突的就不显示了。 今天不妨再耐味地细细探究一下微信小程序wxml 和flask服务器端是怎么jpg图片数据交互的。 mina/pages/food/index.wxml <!--index.wxml--> <!--1px …

Python程序设计 循环结构(二)

1.斐波那契数列 编写一个能计算斐波那契数列中第x个数的小程序。斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列、 因数学家莱昂纳多斐波那契&#xff08;Leonardoda Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为…

日本EPSON 爱普生HUD汽车抬头显示系统芯片

目前HUD产品在新车上的配装率逐年上升&#xff0c;预计在2025年将达到30%。那么在介绍爱普生HUD整合方案之前&#xff0c;让我们先了解一下什么叫HUD。 HUD&#xff08;Head Up Display&#xff09;中文叫抬头显示系统&#xff0c;又被叫做平行显示系统。早被应用在飞机辅助…

Linux系统——硬件命令

目录 一.网卡带宽 1.查看网卡速率——ethtool 网卡名 2.查看mac地址——ethtool -P 网卡名 二、内存相关 1.显示系统中内存使用情况——free -h 2.显示内存模块的详细信息——dmidecode -t memory 三、CPU相关 1.查看CPU架构信息——lscpu 2.性能模式 四、其他硬件命…

C语言例4-37:输出10~100的全部素数

素数是指除1和它本身之外不能被其他任何整数整除。 自己思考的基础代码如下&#xff1a; //输出10~100的全部素数 //素数是指除1和它本身之外不能被其他任何整数整除 //自己思考的基础代码 #include<stdio.h> int main(void) {int n10,i2,m,counter0; // n10~100;for(n…

如何用Flask中的Blueprints构建大型Web应用

本文分享自华为云社区《构建大型Web应用Flask中的Blueprints指南》&#xff0c;作者&#xff1a; 柠檬味拥抱。 什么是Blueprints&#xff1f; 什么是Blueprints&#xff1f; Blueprints是Flask中的一种模式&#xff0c;用于将应用程序分解为可重用的模块。每个蓝图实际上是…

IDEA | 资源文件中文乱码问题解决

问题 IDEA打开资源文件&#xff0c;显示乱码问题。 解决方案 1、电脑是mac&#xff0c;点击IDEA->【Preferences】->【Editor】->【File Encodings】 2、选择【Properties Files】中的UTF-8&#xff0c;并勾选Transparent native-to-ascii conversion。 3、最后点击…

蓝桥杯算法赛(二进制王国)

问题描述 二进制王国是一个非常特殊的国家&#xff0c;因为该国家的居民仅由 0 和 1 组成。 在这个国家中&#xff0c;每个家庭都可以用一个由 0 和 1 组成的字符串 S 来表示&#xff0c;例如 101、 000、 111 等。 现在&#xff0c;国王选了出 N 户家庭参加邻国的庆典…

Karmada 管理有状态应用 Xline 的早期探索与实践

背景与动机 目前随着云原生技术和云市场的不断成熟&#xff0c;越来越多的 IT 厂商开始投入到跨云多集群的怀抱当中。以下是 flexera 在 2023 年中关于云原生市场对多云多集群管理的接受程度的调查报告&#xff08;http://info.flexera.com&#xff09; 从 flexera 的报告中可…

python_1

要求&#xff1a; 代码&#xff1a; # 先将分钟数转化成年数&#xff0c;再将余数做为天数 minute float(input("请输入分钟数&#xff1a;")) year_1 (minute / 60 / 24) // 365 day_1 (minute / 60 / 24) % 365 now f"{minute}分钟{year_1}年{day_1}天&q…

Polkadot、Kusama 和六大领先平行链现已上线 Dune 数据分析平台!

3 月 19 日对于波卡社区来说是一个关键性的时刻&#xff0c;因为 Polkadot 数据首次在领先的区块链数据开源分析平台 Dune 上可以被访问和使用。这是 Colorful Notion 和 Dune 之间战略合作的结果&#xff0c;这次的合作与集成将使 Polkadot 生态系统的可见性大幅增强&#xff…

力扣面试150 阶乘后的零 数论 找规律 质因数

Problem: 172. 阶乘后的零 思路 &#x1f468;‍&#x1f3eb; 大佬神解 一个数末尾有多少个 0 &#xff0c;取决于这个数 有多少个因子 10而 10 可以分解出质因子 2 和 5而在阶乘种&#xff0c;2 的倍数会比 5 的倍数多&#xff0c;换而言之&#xff0c;每一个 5 都会找到一…

HTML 常用标签总结

本篇文章总结了一些我在学习html时所记录的标签&#xff0c;虽然总结并不是非常全面&#xff0c;但都是一些比较常用的。 html元素标签 首先一个html界面是由无数个元素标签组成的&#xff0c;每个元素具有它的属性 1.input 单行文本框 标签type属性——text <input ty…

机器学习周记(第三十一周:文献阅读-GGNN)2024.3.18~2024.3.24

目录 摘要 ABSTRACT 1 论文信息 1.1 论文标题 1.2 论文模型 1.2.1 数据处理 1.2.2 门控图神经网络 1.2.3 掩码操作 2 相关知识 2.1 图神经网络&#xff08;GNN&#xff09; 2.2 图卷积神经网络&#xff08;GCN&#xff09; 3 相关代码 摘要 本周阅读了一篇利用图神…

IDEA2023版本整合SpringBoot热部署

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 开发环境篇 ✨特色专栏&#xff1a; M…

波奇学Linux:自定义协议和序列和反序列化

TCP是面向字节流的如何保证&#xff0c;读取上来的数据是一个"完整"的报文 tcp传输控制协议&#xff1a;什么时候发&#xff0c;发多少&#xff0c;出错怎么办 read和write都是从用户到内核空间的拷贝&#xff0c;数据不一定传输到另一个台主机的缓冲区&#xff0c;…