Heim >Web-Frontend >js-Tutorial >Pure JQuery implementiert einen einfachen Paging-Effekt (Codebeispiel)

Pure JQuery implementiert einen einfachen Paging-Effekt (Codebeispiel)

青灯夜游
青灯夜游Original
2018-10-20 15:26:484989Durchsuche

Wie kann man mit reiner JQuery einen Paging-Effekt erzielen? Was Ihnen dieser Artikel bringt, ist reine JQuery, um einen einfachen Paging-Effekt zu erzielen (Codebeispiel). Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

Wenn während unseres Front-End-Seitenentwicklungsprozesses eine Seite zu viele Daten anzeigt und die Seite zu lang ist, wird die Benutzererfahrung beeinträchtigt. Zu diesem Zeitpunkt müssen wir die Daten zur Anzeige auf mehrere Seiten aufteilen, was als Paging bezeichnet wird.

Im Folgenden werden wir anhand eines einfachen Codebeispiels im Detail vorstellen, wie man mit reinem JQuery einen supereinfachen Front-End-Paging-Effekt erzielt !

CSS-Code:

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-Code:

<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-Skriptdatei

1. Referenz JQuery und Paging-Skript

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

2. Schreiben Sie das jquery.PageBar.js-Skript

$().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);
	}
})

Schauen wir uns das Rendering an:

Pure JQuery implementiert einen einfachen Paging-Effekt (Codebeispiel)

Das obige Bild ist einfach ein statisches Bild, nein Die Methode zeigt den Effekt, und Sie können es selbst ausprobieren. Ich hoffe, es hilft den Bedürftigen!

Wenn Sie mehr über Frontend-bezogenes Wissen erfahren und weitere entsprechende Tutorials erhalten möchten, können Sie Folgendes besuchen: jQuery-Video-Tutorial, jQuery-Spezialeffektsammlung, Bootstrap-Video-Tutorial !

Das obige ist der detaillierte Inhalt vonPure JQuery implementiert einen einfachen Paging-Effekt (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn