>  기사  >  웹 프론트엔드  >  순수 jquery는 간단한 페이징 효과를 구현합니다(코드 예).

순수 jquery는 간단한 페이징 효과를 구현합니다(코드 예).

青灯夜游
青灯夜游원래의
2018-10-20 15:26:484955검색

순수한 jquery로 페이징 효과를 얻는 방법은 무엇입니까? 이 기사에서 제공하는 것은 간단한 페이징 효과(코드 예제)를 달성하기 위한 순수한 jquery입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

프런트엔드 페이지 개발 과정에서 페이지에 너무 많은 데이터가 표시되고 페이지가 너무 길면 사용자 경험이 저하됩니다. 이때 데이터를 여러 페이지로 나누어 표시해야 하는데, 이를 페이징이라고 합니다.

아래에서는 간단한 코드 예제를 사용하여 pure jquery를 사용하여 매우 간단한 프런트엔드 페이징 효과를 달성하는 방법을 자세히 소개합니다!

css 코드:

ul.pagination {
    display: inline-block;
    padding: 0;
    margin: 0;
}
 
ul.pagination li {display: inline;}
 
ul.pagination li a {
    color: black;
    float: left;
    padding: 8px 16px;
    text-decoration: none;
    border: 1px solid blue;
	border-radius:3px;
}
.active{
	background-color: #7FFFAA;
}

html 코드:

<h2>最简单的分页</h2>
<ul class="pagination"></ul>
<input type="hidden" id="currentPage" name="currentPage" value="1"></input>
<input type="hidden" id="totalPage" value="54"></input>

js 스크립트 파일

1. Jquery 및 페이징 스크립트 참조

<script src="/js/jquery.min.js" type="text/javascript"></script>
<script src="/js/jquery.PageBar.js" type="text/javascript"></script>

2. jquery.PageBar.js 스크립트 작성

$().ready(function(){
	
	var curPage =$("#currentPage").val();
	var last =$("#totalPage").val();
	var page =Math.ceil(curPage/10);
	//调用绘制分页样式函数
	draw(page,curPage);
	
	//绑定点击页码事件
	$(document).on("click",".pagination li a",function(){
		var str =$(this).html();
		if(!isNaN(str)){
			//移除之前的active
			$(".pagination li a").removeClass("active");
			$(this).attr("class","active");
			$("#currentPage").val(str);
		}
	});
	
	//绑定下一页点击事件
	$(document).on("click","#nextPage",function(){
		var num =$(".active").html();
		var curPage =$("#currentPage").val();
		var last =$("#totalPage").val();
		var page =Math.ceil((parseInt(num))/10);
		if(num < page*10 && num != last){
			//移除之前的active
			$(".pagination li a").removeClass("active");
			$("#"+(parseInt(num)+1)+"").attr("class","active");
			//$(".pagination li a[text="+(parseInt(num)+1)+"]").attr("class","active");//jQ1.6支持
			$("#currentPage").val(parseInt(num)+1);
		}else if(num == page*10 && num != last){
			//清空之前的数据
			$(".pagination").html("");
			draw(page+1,(parseInt(num)+1));
		}
	})
	
	//绑定上一页点击事件
	$(document).on("click","#previousPage",function(){
		var num =$(".active").html();
		var curPage =$("#currentPage").val();
		var last =$("#totalPage").val();
		var page =Math.ceil((parseInt(num))/10);
		if(num <= page*10 && num != (page-1)*10+1){
			//移除之前的active
			$(".pagination li a").removeClass("active");
			$("#"+(parseInt(num)-1)+"").attr("class","active");
			//$(".pagination li a[text="+(parseInt(num)+1)+"]").attr("class","active");//jQ1.6支持
			$("#currentPage").val(parseInt(num)-1);
		}else if(num == (page-1)*10+1 && num != 1){
			//清空之前的数据
			$(".pagination").html("");
			draw(page-1,(parseInt(num)-1));
		}
	})
	
	//绘制页面分页样式
	function draw(page,curPage){
		//页面中的当前页
		var page =page;
		//后台传过来的页数
		var curPage = curPage;
		//后台传过来的总页数
		var datas =$("#totalPage").val();
		//每页显示多少条数据
		var pageSize =10;
		//在网页中一共要分多少页
		var totalPage = Math.floor((datas-1)/pageSize+1);
		
		var liStr ="<li><a id=&#39;previousPage&#39; href=&#39;#&#39;>上一页</a></li>";
		$("#currentPage").val(curPage);
		if(page <= totalPage){
			if(datas <= 10){
				for(i=1; i<=datas; i++){
					//为当前页增加样式
					var active ="";
					if(i==curPage){
						active=" class=&#39;active&#39; ";
					}
					liStr +=" <li><a id="+i+" "+active+" href=&#39;#&#39;>"+i+"</a></li>"
				}
			}else{
				var start =pageSize*(page-1)+1;
				var end =page*pageSize;
				if(page == totalPage){
					for(i=start; i<=datas; i++){
						//为当前页增加样式
						var active ="";
						if(i==curPage){
							active=" class=&#39;active&#39; ";
						}
						liStr +=" <li><a id="+i+" "+active+" href=&#39;#&#39;>"+i+"</a></li>"
					}
				}else{
					for(i=start; i<=end; i++){
						//为当前页增加样式
						var active ="";
						if(i==curPage){
							active=" class=&#39;active&#39; ";
						}
						liStr +=" <li><a id="+i+" "+active+" href=&#39;#&#39;>"+i+"</a></li>"
					}
				}
			}
		}
		liStr +="<li><a id=&#39;nextPage&#39; href=&#39;#&#39;>下一页</a></li>";
		$(".pagination").append(liStr);
	}
})

렌더링을 살펴보겠습니다.

순수 jquery는 간단한 페이징 효과를 구현합니다(코드 예).

위 사진은 정적인 사진일 뿐 효과를 직접 보여드릴 수는 없습니다. 도움이 필요한 분들에게 도움이 되기를 바랍니다!

프런트 엔드 관련 지식에 대해 더 자세히 알아보고 관련 튜토리얼을 더 얻으려면 jQuery 비디오 튜토리얼, jquery 특수 효과 컬렉션, bootstrap 비디오 튜토리얼을 방문하세요!

위 내용은 순수 jquery는 간단한 페이징 효과를 구현합니다(코드 예).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.