手写前端分页效果

需求:实现分页请求表格数据,ajax暂时没写,只写了分页的功能。
效果图:
当页数是第一页的时候,首页和向前那个按钮处于禁止点击的状态
在这里插入图片描述
各个按钮都正常的状态
在这里插入图片描述
当页数是第一页的时候,首页和向前那个按钮处于禁止点击的状态
在这里插入图片描述
各部分的代码如下:
html部分:

<!-- 分页 -->
	<div class="pageBox">
		<div class="pageTotal"><span id="dataLength">88</span></div>
		<div class="pageContent">
			<button class='firstPage'>首页</button>
			<button class="prevPage"></button>
			<button class="showPage"></button>
			<button class="nextPage"></button>
			<button class="lastPage">尾页</button>
		</div>
		<div class="selectSize">
			<div><span class="numSelect">10</span> <span>条/页</span></div>
			<div class="icona"></div>
		</div>
		<!-- <div id="test1" style="display: inline-block;margin-left: 210px;"></div> -->
		<div class="goPage"><span>跳至</span><input type="text"  id="goPageInp"><span></span></div>
		<ul class="pageSelectShow">
			<li data-num="10">10条/页</li>
			<li data-num="20">20条/页</li>
			<li data-num="50">50条/页</li>
			<li data-num="100">100条/页</li>
		</ul>
	</div>

CSS部分:

	* {
			padding: 0;
			margin: 0;


		}

		body,
		html {
			width: 100%;
			height: 100%;
		}


		.pageBox{
			width: 60%;
			margin-left: 20%;
			margin-top: 200px;
			position: relative;
			height: 50px;

		}
		.pageBox>div{
			float: left;
			margin: 0 10px;
		}
		.pageContent>button{
			float: left;
			margin: 0px 4px;
			border: none;
			outline: none;
		}
.goPage,.pageTotal{
	height: 30px;
	vertical-align: middle;
	font-size: 14px;

}
.goPage{
	right: 50px;
}
.goPage span{
	display: inline-block;
	color: #999999;
	
}
.goPage input{
	display: inline-block;
	width: 50px;
	height: 30px;
	margin: 0px 5px;
	border: none;
	border: 1px solid #ccc;
	border-radius: 4px;
	text-align: center;
}
.pageTotal{
	left: 50px;
	line-height: 30px;
	font-size: 15px;
	color: #999;
}
.pageTotal span{
	margin: 0 3px;
	color: #333;
}

.selectSize{
	width: 100px;
	height: 30px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 14px;
	text-align: center;
	line-height: 30px;
	vertical-align: middle;
	position: relative;

}
.selectSize>div{
	float: left;
	margin-left: 5px;
}
.icona{
	width: 20px;
	height: 20px;
	background-image: url('./down.png');
	background-size: 100% 100%;
	background-position: center center;
	margin-top: 5px;
	cursor: pointer;
	position: absolute;
	right: 6px;

}
.pageSelectShow{
	width: 100px;
	height: 162px;
	border: 1px solid #ccc;
	overflow-y: auto;
	position: absolute;
	top: -170px;
	left: 400px;
	list-style: none;
	font-size: 15px;
	display: none;
	background: #fff;
	border-radius: 3px;
}
.pageSelectShow li{
	width: 100%;
	height: 40px;
	line-height: 40px;
	text-align: center;
	cursor: pointer;

}
.pageContent>div{
	cursor: pointer;
	height: 30px;

}
.firstPage,.lastPage{
	width: 60px;
}
.firstPage,.lastPage,.showPage{
	background:rgb(67, 133, 255);
	color: #fff;
	font-size: 15px;
	line-height: 30px;
	text-align: center;
	border-radius: 4px;
}
.showPage{
	width: 40px;
}
.prevPage,.nextPage{
	height: 30px;
	width: 50px;
	border: 1px solid #ccc;
	border-radius: 4px;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 20px 20px;

}
.prevPage{
	background-image: url('./prev.png');
	
}
.nextPage{
	background-image: url('./next.png');
}
.nowtouch{
	color:#009E94
}

JS代码:

		//点击显示选择条数的div
		var showFlag = true;
		var numcount = 1;//默认第一页
		var dataLength =10000;
		$('#dataLength').text(dataLength);
		var allCount = Math.ceil(dataLength / 10);
		console.log(allCount);
		//分页跳转
		$('.showPage').text(numcount)
		if (numcount === 1) {
			firstDis(true, 'not-allowed', '0.5')
		}
		if (numcount === allCount) {
			lastDis(true, 'not-allowed', '0.5')

		}
		
		$('.icona').click(function () {
			if (showFlag) {
				$('.pageSelectShow').css({
					'display': 'block'
				});
				$('.icona').css({
					'background-image': 'url(' + './up.png' + ')'
				})
				showFlag = !showFlag;

			} else {
				$('.pageSelectShow').css({
					'display': 'none'
				})
				$('.icona').css({
					'background-image': 'url(' + './down.png' + ')'
				})
				showFlag = !showFlag;
			}
		})
		//点击选择条数
		//

		$('.pageSelectShow li').click(function (e) {
			console.log(e.target.innerHTML)
			var countLength = e.target.innerHTML
			for(var i = 0; i < countLength.length;i++){
				console.log(countLength[i])
			}
			$('.numSelect').text($(this).data('num'));
			allCount = Math.ceil(dataLength /  e.target.dataset.num);
			
			if(allCount == 1){
				firstDis(true, 'not-allowed', '0.5');
				lastDis(true, 'not-allowed', '0.5')
			}else{
				firstDis(true, 'not-allowed', '0.5')
		     lastDis(false, 'pointer', '1')
			}
			$(this).addClass('nowtouch').siblings().removeClass('nowtouch')
			$('.pageSelectShow').css({
				'display': 'none'
			})
			$('.icona').css({
				'background-image': 'url(' + './down.png' + ')'
			})
		})

		//点击首页
		$('.firstPage').click(function () {
			numcount = 1;
			$('.showPage').text(numcount);
			firstDis(true, 'not-allowed', '0.5')
			lastDis(false, 'pointer', '1')
		})
		//点击上一页
		$('.prevPage').click(function () {
			var prevNum = Number($('.showPage').text());
			prevNum--;
			$('.showPage').text(prevNum);
			if (prevNum == numcount) {
				firstDis(true, 'not-allowed', '0.5')
			} else {
				lastDis(false, 'pointer', '1')
			}
		})
		//点击下一页
		$('.nextPage').click(function () {
			var prevNum = Number($('.showPage').text());
			prevNum++
			firstDis(false, 'pointer', '1')
			$('.showPage').text(prevNum);
			if (prevNum == allCount) {
				lastDis(true, 'not-allowed', '0.5')
			} else {
				lastDis(false, 'pointer', '1')
			}
		})
		//点击尾页
		$('.lastPage').click(function () {
			numcount = allCount
			$('.showPage').text(allCount);
			firstDis(false, 'pointer', '1')
			lastDis(true, 'not-allowed', '0.5')
		})
		//当页码为1,禁止点击的函数
		function firstDis(boolVal, cursorVal, opacityVal) {
			$('.firstPage').attr('disabled', boolVal);
			$('.firstPage').css({
				'cursor': cursorVal,
				'opacity': opacityVal
			})
			$('.prevPage').attr('disabled', boolVal);
			$('.prevPage').css({
				'cursor': cursorVal,
				'opacity': opacityVal
			})
		}
		//当页码为20,禁止点击的函数
		function lastDis(boolVal, cursorVal, opacityVal) {
			$('.lastPage').attr('disabled', boolVal);
			$('.lastPage').css({
				'cursor': cursorVal,
				'opacity': opacityVal
			})
			$('.nextPage').attr('disabled', boolVal);
			$('.nextPage').css({
				'cursor': cursorVal,
				'opacity': opacityVal
			})
		}
		//键盘事件
		$('#goPageInp').on('keydown', function (e) {
			if (e.keyCode == 13) {
				var vals = e.target.value;
				console.log(Number(vals));
				$(this).blur();
				if(Number(vals) && Number(vals) <=allCount ){
					$('.showPage').text(vals);
				if (vals == allCount) {
					firstDis(false, 'pointer', '1')
					lastDis(true, 'not-allowed', '0.5')
				}
				if (vals == numcount) {
					lastDis(false, 'pointer', '1')
					firstDis(true, 'not-allowed', '0.5')
				}
				e.target.value = ''
				}else{
					alert('输入错误');
					e.target.value = ''
				}
				
			
			}
		})
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值