프런트엔드 페이징 컨트롤이 많이 있습니다. 여기서는 jquery를 기반으로 하는 페이징 컨트롤 pagination.js 버전을 공유합니다.
먼저 미리보기를 살펴보겠습니다.
기본적으로 페이지 번호를 클릭하면 블로그 파크와 마찬가지로 URL 뒤에 "#p 페이지 번호"가 추가됩니다.
컨트롤에는 주의가 필요한 2개의 매개변수가 있습니다.
1. beforeRender: 각 페이지 번호 항목이 렌더링되기 전에 호출되며 매개변수는 페이지 번호의 jQuery 객체입니다. 이때 우리는 렌더링하기 전에 자체 속성을 추가하는 등의 일부 처리를 수행할 수 있습니다. 기본적으로 페이지 번호를 클릭하면 URL 뒤에 "#p 페이지 번호"가 추가됩니다. 이러한 URL은 페이지를 새로 고치지 않습니다. 예를 들어 URL이 "default.aspx?index=page number"인 경우 페이지를 새로 고쳐야 하는 경우 이 콜백 함수에서 이를 처리할 수 있습니다.
2. 콜백: 페이지 번호를 클릭하면 매개변수가 전체 옵션입니다. 페이지 번호를 클릭하면 Ajax 요청이 시작되지 않으며 직접 처리해야 합니다. options.index는 이번에 클릭한 페이지 번호입니다. 때로는 총 개수가 변경될 수 있으며 콜백이 옵션 매개변수를 반환할 수 있습니다. 여기서는 총 개수만 재설정한 다음 반환하면 됩니다.
호출 예시를 보시면 이해하실 수 있습니다.
소스코드:
/*分页控件v1.0 date:2015.08.26 */ (function(window,$){ $.fn.pagination = function(options){ var _dftOpts = { count:0,//总数 size:10,//每页数量 index:1,//当前页 lrCount:5,//当前页左右最多显示的数量 lCount:0,//最开始预留的数量 rCount:0,//最后预留的数量 first:"首页", last:"尾页", before:"上一页", next:"下一页", callback:null,//点击事件 beforeRender:null//项呈现前 }; $.extend(_dftOpts,options); var count = _dftOpts.count; if(count <= 0) return; var _ellipsis = "..."; var _size = _dftOpts.size > 0 ? (_dftOpts.size > count ? count : _dftOpts.size) : 1; var _page = Math.ceil(count / _size); var _index = _dftOpts.index > 0 ? (_dftOpts.index > _page ? _page : _dftOpts.index) : 1; var _lrcount = _dftOpts.lrCount * 2 + 1 > _page ? parseInt((_page - 1) / 2) : _dftOpts.lrCount; var _continueCount = _lrcount * 2 + 1; var _lCount = _dftOpts.lCount <= 0 ? 0 : (_dftOpts.lCount > _page ? _page - 1 : _dftOpts.lCount); var _rCount = _dftOpts.rCount <= 0 ? 0 : (_dftOpts.rCount > _page ? _page - 1 : _dftOpts.rCount); var _first = _dftOpts.first; var _before = _dftOpts.before; var _last = _dftOpts.last; var _next = _dftOpts.next; var _FromTo; var _url = location.pathname + location.search + "#p"; var jthis = this; var jPager = $("<div>",{"class":"pager"}); initJPager(); jthis.append(jPager); regisiterEvent(); return jthis; /*function*/ function initJPager(){ _FromTo = GetFromTo(); var from = _FromTo.from; var to = _FromTo.to; var before = _index <= 1 ? 1 : _index - 1; var next = _index >= _page ? _page : _index + 1; var beforeLast = _page - 1; var jPrevs,jNexts; var i; //前 if(from === 2 && _lCount > 0){ appendLink(1); }else if(from > _lCount + 1){ for(i = 0;i < _lCount;i++){ appendLink(i + 1); } if(_lCount > 0){ appendEllipsis(); } }else{ for(i = 1;i < from;i++){ appendLink(i); } } //连续部分 for(i = from;i <= to;i++){ if(i === _index){ appendLink(i,true); }else{ appendLink(i); } } //后 if(to === beforeLast && _rCount > 0){ appendLink(_page); }else if(to < _page - _rCount){ if(_rCount > 0){ appendEllipsis(); } for(i = _page - _rCount;i < _page;i++){ appendLink(i + 1); } }else{ for(i = to;i < _page;i++){ appendLink(i + 1); } } appendFirstAndLast(); } function GetFromTo(){ var from,to; from = _index - _lrcount; if(from <= 1){ return {from:1,to:_continueCount}; } if(_page - _index < _lrcount){ from = _page - _continueCount + 1; return {from:from,to:_page}; } to = _index + _lrcount; to = to > _page ? _page : to; return {from:from,to:to}; } function appendLink(index,active){ var jA = $("<a>",{text:index,href:_url+index}); if(active){ jA.addClass("active"); } if(_dftOpts.beforeRender){ _dftOpts.beforeRender(jA); } jPager.append(jA); } function appendFirstAndLast(){ var jFirst = $("<a>",{text:_first}); var jBefore = $("<a>",{text:_before}); var jLast = $("<a>",{text:_last}); var jNext = $("<a>",{text:_next}); jPager.append(jNext).append(jLast); jBefore.insertBefore(jPager.find("a").first()); jFirst.insertBefore(jBefore); if(_index === 1){ jFirst.addClass("disabled"); jBefore.addClass("disabled"); }else{ jFirst.attr("href",_url+1); jBefore.attr("href",_url+(_index-1)); } if(_index === _page){ jLast.addClass("disabled"); jNext.addClass("disabled"); }else{ jLast.attr("href",_url+_page); jNext.attr("href",_url+(_index+1)); } } function appendEllipsis(){ jPager.append(_ellipsis); } //event function regisiterEvent(){ jPager.on("mouseenter","a",function(){ var jthis = $(this); if(!jthis.hasClass("active") && !jthis.hasClass("disabled")){ jthis.addClass("hover"); } }).on("mouseout","a",function(){ var jthis = $(this); if(!jthis.hasClass("active")){ jthis.removeClass("hover"); } }).on("click","a",function(){ var jItem = $(this); if(jItem.hasClass("disabled")){ return; } var text = jItem.text(); var index = 0; switch(text){ case _first: index = 1; break; case _before: index = _index - 1; break; case _last: index = _page; break; case _next: index = _index + 1; break; default: index = parseInt(text); break; } var callback = _dftOpts.callback; var newOpts; _dftOpts.index = index; jPager.remove(); if(callback){ newOpts = callback(_dftOpts); } if(newOpts){ _dftOpts = newOpts; } jthis.pagination(_dftOpts); }); } } })(window,$);
스타일:
스타일은 매우 간단하며 직접 조정할 수 있습니다.
.pager{height:30px;line-height:30px;font-size: 12px;margin: 25px 0px;text-align: center;color: #2E6AB1;overflow: hidden;} .pager a{border:1px solid #9AAFE5;color:#2E6AB1;margin:0px 5px;padding:5px 8px;text-decoration: none;} .pager a.hover,.pager a.active{background-color:#2E6AB1;border-color:#000080;color:#FFF;} .pager a.disabled{color:#C8CDD2;cursor:auto;}
사용 예:
$(".div1").pagination({ count:200, size:10, index:1, lrCount:3, lCount:1, rCount:1, callback:function(options){ //alert(options.index); //options.count = 300; //return options; }, beforeRender:function(jA){ //jA.attr("href","default.aspx?index="+jA.text()); } });
pagination.js 1.0에는 아직 몇 가지 단점과 버그가 있을 수 있으며, 시간이 지나면 수정하겠습니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

javaandjavaScriptAredistIntLanguages : javaisusedforenterpriseandmobileApps, whilejavaScriptisforInciveWebPages.1) javaiscompiled, 정적으로 정적, Andrunsonjvm.2) javaScriptISNaterPreted, doineslicallytyted, andrunsinbrowsorsornode.js.3) javausepith

JavaScript 코어 데이터 유형은 브라우저 및 Node.js에서 일관되지만 추가 유형과 다르게 처리됩니다. 1) 글로벌 객체는 브라우저의 창이고 node.js의 글로벌입니다. 2) 이진 데이터를 처리하는 데 사용되는 Node.js의 고유 버퍼 객체. 3) 성능 및 시간 처리에는 차이가 있으며 환경에 따라 코드를 조정해야합니다.

javaScriptUSTWOTYPESOFSOFCOMMENTS : 단일 라인 (//) 및 multi-line (//)

Python과 JavaScript의 주요 차이점은 유형 시스템 및 응용 프로그램 시나리오입니다. 1. Python은 과학 컴퓨팅 및 데이터 분석에 적합한 동적 유형을 사용합니다. 2. JavaScript는 약한 유형을 채택하며 프론트 엔드 및 풀 스택 개발에 널리 사용됩니다. 두 사람은 비동기 프로그래밍 및 성능 최적화에서 고유 한 장점을 가지고 있으며 선택할 때 프로젝트 요구 사항에 따라 결정해야합니다.

Python 또는 JavaScript를 선택할지 여부는 프로젝트 유형에 따라 다릅니다. 1) 데이터 과학 및 자동화 작업을 위해 Python을 선택하십시오. 2) 프론트 엔드 및 풀 스택 개발을 위해 JavaScript를 선택하십시오. Python은 데이터 처리 및 자동화 분야에서 강력한 라이브러리에 선호되는 반면 JavaScript는 웹 상호 작용 및 전체 스택 개발의 장점에 없어서는 안될 필수입니다.

파이썬과 자바 스크립트는 각각 고유 한 장점이 있으며 선택은 프로젝트 요구와 개인 선호도에 따라 다릅니다. 1. Python은 간결한 구문으로 데이터 과학 및 백엔드 개발에 적합하지만 실행 속도가 느립니다. 2. JavaScript는 프론트 엔드 개발의 모든 곳에 있으며 강력한 비동기 프로그래밍 기능을 가지고 있습니다. node.js는 풀 스택 개발에 적합하지만 구문은 복잡하고 오류가 발생할 수 있습니다.

javaScriptisNotBuiltoncorc; it'SangretedLanguageThatrunsonOngineStenWrittenInc .1) javaScriptWasDesignEdasAlightweight, 해석 hanguageforwebbrowsers.2) Endinesevolvedfromsimpleplemporectreterstoccilpilers, 전기적으로 개선된다.

JavaScript는 프론트 엔드 및 백엔드 개발에 사용할 수 있습니다. 프론트 엔드는 DOM 작업을 통해 사용자 경험을 향상시키고 백엔드는 Node.js를 통해 서버 작업을 처리합니다. 1. 프론트 엔드 예 : 웹 페이지 텍스트의 내용을 변경하십시오. 2. 백엔드 예제 : node.js 서버를 만듭니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

드림위버 CS6
시각적 웹 개발 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.