前端分頁功能(通用)


此文轉載自:https://blog.csdn.net/qq_46223960/article/details/109997939

 

歡迎收看《好看的博文沒人贊》系列

前言:今天給大家帶來的是前端數據的分頁功能

先上一波效果圖展示:

直接上代碼:這里使用的是JavaScript來實現

關於代碼詳解都以注釋的方式寫在JavaScript里的

HTML:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>分頁</title>
		<link rel="stylesheet" href="css/limitFace.css">
	</head>
	<body>
		<div class="all">
			<table id="table">
				
			</table>
			<div id="inputs">
				
			</div>
		</div>
		<script src="js/limitFace.js"></script>
	</body>
</html>

CSS: 

*{
	padding: 0;
	margin: 0;
	font-size: 20px;
}
.all{
	width: 100%;
	height: 100vh;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}
/*偷懶才用的id*/
#inputs input{
	width: 100px;
	height: 50px;
	background-color: white;
}
#table{
	width: 90%;
}
tr{
	width: 100%;
}
td{
	text-align: center;
	width: 50%;
	height: 10vh;
	border: 1px solid black;
}

JS: 

//一下數據為模擬集合,個人理解js中的集合就是將對象放進數組
var strs = [
	{
		"id":123,
		"pwd":456
	},
	{
		"id":456,
		"pwd":123
	},
	{
		"id":4681,
		"pwd":9815
	},
	{
		"id":471,
		"pwd":4981
	},
	{
		"id":1234789,
		"pwd":156
	},
	{
		"id":789,
		"pwd":158
	},
	{
		"id":"vgwh",
		"pwd":"vgsya"
	},
	{
		"id":1,
		"pwd":"tcv"
	},
	{
		"id":256,
		"pwd":"vtc0"
	}
];
//假設規定每頁顯示長度為3
var len = 3;
//確認該集合會被分成幾頁,分成幾頁就代表需要幾個頁面按鈕,封裝封裝方便多次運用
function limits(){
	var countLim = Math.ceil(strs.length/len);//余數也算是一頁,這里用向上取整
	//確認頁面按鈕個數,進行循環顯示到頁面上
	document.getElementById("inputs").innerHTML='';//清空一下
	for(var i=1;i<=countLim;i++){
		document.getElementById("inputs").innerHTML+='<input type="button" value="'+i+'" onclick="limitinput(this)"/>';//每個頁面按鈕都綁定上一個點擊事件
	}
}
var choose = 0;//創建一個全局變量用來保存當前處於第幾個頁面
//點擊按鈕獲取當前按鈕的值進行選擇當前table是第幾頁數據
function limitinput(ids){
	choose = ids.value;
	tablestr(choose);//刷新table數據
	limits();//刷新頁面按鈕
    ids.style.backgroundColor='red';//當前點擊的頁面按鈕背景顏色改變為紅色
	liminputcolor(choose);//頁面按鈕變色
}
//通過當前頁面按鈕和頁面數據長度將數據放進table內,封裝封裝!!!必須封裝
function tablestr(num){//num是指當前哪個頁面
	var num1 = (num-1)*len;//確定循環開始的集合下標
	var num2 = num*len;//確定循環結束的結束下標
	document.getElementById("table").innerHTML='';//清空一下
	for(var i=num1;i<num2;i++){//遍歷數組
		var str = '';
		for(var h in strs[i]){//遍歷集合
			str+='<td>'+strs[i][h]+'</td>';
		}
		document.getElementById("table").innerHTML+='<tr>'+str+'</tr>';//每循環一次添加一條數據
	}
}
function liminputcolor(choose){
	document.getElementById("inputs").childNodes[choose-1].style.backgroundColor="red";
}
//初始化,當前頁面顯示為第一頁
limits();//頁面按鈕生成
document.getElementById("inputs").childNodes[0].style.backgroundColor="red";//第一個按鈕的背景顏色為紅色
tablestr(1);//table數據顯示
/*
到這里就結束了,但是!!!這些都是被封裝好了的,意思就是說,在最開始的時候這就是通用的做法;
最開始的數據就是在模擬后端的集合,也就是說,不論你后端傳遞給前端什么集合都可以實現分頁功能
*/

后言:本次博文就到這里了,多的話也沒說啥,解釋都在js的注釋里面,要是有什么疑問的,可以私我,好了,該說再見了,制作不易,各位看客點個贊再走唄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM