jQuery实现分页插件

代码是照着网上视频敲的...

演示效果:


html文件代码:

<!DOCTYPE html>
<html>
<head>
	<title>分页插件</title>
	<meta charset="utf-8">
</head>
<style type="text/css">
	#container{
		margin-top: 20px;
		margin-left: 20px;
	}
	#container a{
		min-width: 30px;
		height: 30px;
		text-align: center;
		line-height: 30px;
		color: black;
		border: 1px solid #ccc;
		padding: 0 5px;
		display: inline-block;
	}
	.active{
		background: blue;
		opacity: 0.5;
		color: white;		
	}
</style>
<body>
	<div id="container">
		<!-- <a class="firstPage">首页</a>
		<a class="prevPage">上一页</a>
		<a class="active">1</a>
		<a>2</a>
		<a>3</a>
		<a>4</a>
		<a>5</a>
		<a>10</a>
		<a class="nextPage">下一页</a>
		<a class="lastPage">尾页</a>
		<span>共210页</span>
		<span>共308条记录</span> -->
	</div>
	<script src="http://code.jquery.com/jquery-latest.js"></script> 
	<script src="jQuery.page.js"></script>
	<script type="text/javascript">
		$("#container").page({
			pageNO: 2,
			totalPage: 10,
			totalSize: 20	
		});
	</script>
</body>
</html>

插件 jQueru.page.js代码

;(function($){
 	$.fn.page = function(options){

 		var defaults = {
 			pageNO: 1,	//当前页
 			totalPage: 30,	//页码
 			totalSize: 300		//总页数
 		}
 		var settings = $.extend({}, defaults, options);
 		var that = this
 		//alert(1)
 		function createHTML(){				//创建内容
 			var html = "";
 			html += "<a class='firstPage'>首页</a><a class='prevPage'>上一页</a>"
 			//添加页码 			
 			if(settings.totalPage > 6){												//总页数大于6
 				if(settings.pageNO < 5){			//当前页号小于5
	 				for (var i = 1; i <= 5; i++) {	 					
		 				if(i == settings.pageNO){					//当前页
		 					html += "<a class='active'>" + i + "</a>" 
		 				}else{
		 					html += "<a>" + i + "</a>"
		 				}
	 				}	
	 				html += "..."
	 				html += '<a>' + settings.totalPage + '</a>'

	 			}else{				//页号大于等于5

	 				//判断...的位置
	 				if(settings.pageNO < settings.totalPage - 3){		
	 					for(var i = settings.pageNO - 2;i <= settings.pageNO + 2;i++){
	 						if(i == settings.pageNO){					//当前页
			 					html += "<a class='active'>" + i + "</a>" 
			 				}else{
			 					html += "<a>" + i + "</a>"
			 				}
	 					}
	 					html += "..."
	 					html += '<a>' + settings.totalPage + '</a>'
	 				}else{
	 					html += '<a>1</a>';
	 					html += '<a>...</a>';
	 					for (var i = settings.totalPage - 4; i <= settings.totalPage; i++) {
	 						if(i == settings.pageNO){					//当前页
			 					html += "<a class='active'>" + i + "</a>" 
			 				}else{
			 					html += "<a>" + i + "</a>"
			 				}	
	 					}	
	 				}					
	 			}
	 			
 			}else{					//总页数小于6
 				for (var i = 1; i <= settings.totalPage; i++) {	 					
		 				if(i == settings.pageNO){					//当前页
		 					html += "<a class='active'>" + i + "</a>" 
		 				}else{
		 					html += "<a>" + i + "</a>"
		 				}
	 				}		 				
 			}
 			
	 			 			

 			html += "<a class='nextPage'>下一页</a><a class='lastPage'>尾页</a><span>共"+settings.totalPage+"页</span><span>共"+ settings.totalSize +"条记录</span>"
 			that.html(html)
 		}
 		//绑定点击事件
 		function bindMouse(){		 			
 			that.on('click', 'a', function(event) {
 				 var attr = $(this).attr('class');				//获取被点击元素的class
 				 var txt = $(this).text();
 				 console.log(typeof txt);
 				 if (attr == 'nextPage') {				//点击下一页
 				 	settings.pageNO += 1;
 				 	if(settings.pageNO > settings.totalPage)
 				 		settings.pageNO = settings.totalPage;
 				 }else if(attr == 'firstPage'){				//点击首页
 				 	settings.pageNO = 1;
 				 }else if(attr == 'lastPage'){				//点击下一页
 				 	settings.pageNO = settings.totalPage;
 				 }else if(attr == 'prevPage'){				//点击上一页
 				 	settings.pageNO -= 1;
 				 	if(settings.pageNO < 1)
 				 		settings.pageNO = 1;
 				 }else{										//点击页码
 				 	settings.pageNO = parseInt(txt);
 				 }

 				 createHTML();
 			});
 		}
 		bindMouse();
 		createHTML();
 	} 	

})(jQuery);

猜你喜欢

转载自blog.csdn.net/lmhlmh_/article/details/80659584
今日推荐