原生JS实现分页

HTML

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>分页原理</title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			input{
				width: 50px;
			}
			.page{
				width: 100%;
				height: 40px;
				line-height: 20px;
				background-color: aqua;
				position: fixed;
				bottom: 0px;
				display: flex;
				justify-content: space-between;
			}
			ul>li{
				width: 20px;
				height: 20px;
				float: left;
				list-style: none;
				border:  solid 1px black;
				margin: 1px;
			}
		</style>
	</head>
	<body>
		<div class="list">
			
		</div>
		<div class="page">
			<span>每页<input type="number" value="10"></span>
			
			<ul>
				
			</ul>
		</div>
	</body>
</html>
<script src="./page.js"></script>

JS

{
	var list = document.querySelector(".list")
	var page = document.querySelector(".page")
	var ipt = document.querySelector("input")
	var ul = document.querySelector("ul")
	
	var total = 100
	var pagenum = 1
	var pagesize =10
	
	var ol = document.createElement("ol")
	list.appendChild(ol)
	var arr = []
	var newArr = []
	
	for(var i=0;i<total;i++){
		arr.push("第"+(i+1)+"条数据")
	}
	
	
	
	
	ul.addEventListener("click",function(e){
		pagenum = e.target.innerText
		ol.innerHTML = ""
		newArr = arr.slice((pagenum-1)*pagesize,pagenum*pagesize)
		olAddlI()
	})
	
	ipt.onchange = function (){
		ol.innerHTML = ""
		ul.innerHTML = ""
		pagesize = ipt.value
		if(pagesize <= 0){
			pagesize = 1
			ipt.value = 1
		}
		var num = Math.ceil(total/pagesize)
		for(var i=0;i<num;i++){
			var li = document.createElement("li")
			li.innerHTML = i+1
			ul.appendChild(li)
		}
		
		newArr = arr.slice((pagenum-1)*pagesize,pagenum*pagesize)
		olAddlI()
	}
	
	function olAddlI(){
		for(var i=0;i<newArr.length;i++){
			var li = document.createElement("li")
			li.innerHTML = newArr[i]
			ol.appendChild(li)
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值