이 글의 내용은 페이지를 넘기거나 내릴 수 있는 페이지 넘김 기능(코드)의 네이티브 js 구현에 관한 것입니다. 필요한 친구들이 참고할 수 있기를 바랍니다. .
페이지 넘기기 기능은 데이터를 렌더링할 때 자주 사용됩니다. 다음은 페이지 넘기기 기능을 기본 JS로 구현한 것입니다. 렌더링은 다음과 같습니다.
주요 단계/아이디어:
페이지 효과 실현
페이지 번호를 클릭하면 상황에 따라 판단되어 페이지 넘김 변경을 제어합니다.
(a). 페이지 수 > 제한 페이지 수 => 10페이지입니다. 한 번에 5페이지만 표시됩니다.
(a).총 페이지 수 = 제한된 페이지 수 =》1페이지만 반환됩니다. 5페이지만 반환됩니다. 페이지는 한 번에 표시됩니다
(a).총 페이지 수
3. 위쪽 및 아래쪽 페이지 페이지 넘기기 기능은 페이지 넘기기 상황에 따라 첫 번째 페이지와 마지막 페이지에서 페이지 넘기기 기능을 제거해야 합니다.
페이지 효과 구현:
html
<div class="pagination"> <a href="javascript:;" class="page-pre">上一页</a> <ul></ul> <a href="javascript:;" class="page-next">下一页</a> </div>
css
/** 分页 */ .pagination{ display: inline-block; } .pagination>ul{ padding: 0; margin: 0; display: inline-block; border: 1px solid #e2e2e2; } .pagination>ul>li{ float: left; border-right-width: 1px; border-right-style: solid; border-right-color: #e2e2e2; } .pagination>ul>li:first-child{ background-color: rgb(30, 159, 255); } .pagination>ul>li:last-child{ border-right-width: 0px; } .pagination>ul>li>a{ display: inline-block; width: 38px; height: 30px; line-height: 30px; text-align: center; color: #333; } .pagination>ul>li>a:hover{ opacity: 0.7; } .pagination>a{ display: inline-block; width: 50px; height: 30px; line-height: 30px; text-align: center; color: #333; border: 1px solid #e2e2e2; } .pagination a.page-pre{ margin-right: -1px; float: left; color: #d2d2d2; cursor: not-allowed; border-right-width: 0px; } .pagination a.page-next{ float: right; border-left-width: 0px; } /* 分页 end **/
페이지 넘기기 효과 달성
var pagination = function (o){ /** * 翻页会出现的情况: * 总页数 > 限制页数 30 > 10 * 总页数 < 限制页数 5 < 10 * 总页数 = 限制页数 10 = 10 * @var pnCount - 显示多少页码 => 限制显示页码 < 页码总数 (按限制显示) : 限制显示页码 > 页码总数 (按页码总数显示) * @var midN - 翻页的中间页码位置 * */ var config = { count: o.count || 10, limit: o.limit || 5, //每页显示的条数 }; var count = config.count, limit = config.limit, eUl = dorea(".pagination ul")[0], ePre = dorea(".pagination .page-pre")[0], eNext = dorea(".pagination .page-next")[0], eUlChild = eUl.children, pnCount = limit < count ? pnCount = limit : pnCount = count, midN = Math.ceil( pnCount / 2 ); /* 初始化上下翻页的页码 */ ePre.setAttribute("data-page","1"); eNext.setAttribute("data-page","1"); /* * @func renderPag * @desc 渲染分页 * @param { string } startN - 页码起始数 * @param { string } currP - 当前页数 ,初始化该函数时可不传 * @var childLen - 所有的子元素(页码)的长度 */ var renderPag = function (startN,currP){ var childLen = eUlChild.length; /* 渲染前先清空所有页码 */ for ( var d = childLen-1; d>=0; d-- ) { eUlChild[d].parentNode.removeChild(eUlChild[d]); } /* 渲染页码 */ for ( var i = startN; i <pnCount+startN; i++ ) { var eLi = creatEle("li"), eA = creatEle("a"); eA.innerHTML = i; eA.setAttribute("href","javascript:;"); eLi.setAttribute("data-page",i); eLi.appendChild(eA); eUl.appendChild(eLi); /* 添加页码的点击事件,获取当前页码currPage */ eLi.addEventListener("click",function (){ var currPage = this.getAttribute("data-page"); turnPag(currPage); ePre.setAttribute("data-page",currPage); eNext.setAttribute("data-page",currPage); }); } /* 每次重新渲染翻页时,判断当前页情况(是否属于首页和尾页) */ if (currP!==undefined) { if (currP=="1") { ePre.style.color = "#d2d2d2"; ePre.style.cursor = "not-allowed"; ePre.removeEventListener("click",preFn,false); }else if(currP==count){ eNext.style.color = "#d2d2d2"; eNext.style.cursor = "not-allowed"; eNext.removeEventListener("click",nextFn,false); }else{ ePre.style.color = "#333"; ePre.style.cursor = "pointer"; eNext.style.color = "#333"; eNext.style.cursor = "pointer"; ePre.addEventListener("click",preFn,false); eNext.addEventListener("click",nextFn,false); } } }; /** * @func turnPag * @desc 翻页事件判断,主要用于点击事件发生后,进行页码渲染前的判断 * @param { string } cp - 传入一个点击所获得的当前页数 * 情况:1) count > limit * a). limit的前半部分页码,例如 10,5 ,前半部分是 1,2 => 起始页为 1 * b). limit的后半部分页码,例如 10,5 ,后半部分是 9,10 => 起始页为 (count-limit)+1 * b). limit的中间部分,例如 10,5 ,中间部分是 4-7 => 起始页为 (当前页 - (limit/2))+1 * 情况:2) count = limit => 起始页为 1 * 情况:3) count < limit => 限制10条,但真实数据确只有5条 * a). 发生这类情况,限制条数应以总数据条数为准则 * */ var turnPag = function (cp){ console.log("当前第 "+cp+" 页"); if (count>limit) { if ( cp<=midN ) { //判断是否属于前部分 renderPag(1,cp); }else if( cp<=count && cp>count - midN ){ //判断是否属于后部分 renderPag( (count - limit)+1 ,cp) ; }else{ renderPag( (cp-midN)+1 ,cp); } }else if (count===limit || count<limit) { renderPag(1); }else{ renderPag( (count - midN)-1 ,cp); } for (var i = 0; i<eUlChild.length; i++) { eUlChild[i].style.backgroundColor = "#fff"; if (eUlChild[i].getAttribute("data-page") == cp) { eUlChild[i].style.backgroundColor = "#1E9FFF"; /* 选中状态 */ } } }; /** * @func preFn * @desc 上翻页 * @func nextFn * @desc 下翻页 */ var preFn = function (){ var currPage = this.getAttribute("data-page"); currPage--; turnPag(currPage); ePre.setAttribute("data-page",currPage); eNext.setAttribute("data-page",currPage); }; var nextFn = function (){ var currPage = this.getAttribute("data-page"); currPage++; turnPag(currPage); ePre.setAttribute("data-page",currPage); eNext.setAttribute("data-page",currPage); }; renderPag(1); /* * 初次渲染翻页时,判断当前的总页数情况,初始化翻页功能 * 情况: 1) count > limit 上翻页:暗色,删除事件 - 下翻页:亮色,点击事件 * 情况: 2) count = limit 上下翻页:暗色,删除事件 * 情况: 3) count < limit 上下翻页:暗色,删除事件 */ if (count>limit) { ePre.style.color = "#d2d2d2"; ePre.style.cursor = "not-allowed"; ePre.removeEventListener("click",preFn,false); eNext.addEventListener("click",nextFn,false); }else{ ePre.style.color = "#d2d2d2"; ePre.style.cursor = "not-allowed"; ePre.removeEventListener("click",preFn,false); eNext.style.color = "#d2d2d2"; eNext.style.cursor = "not-allowed"; eNext.removeEventListener("click",nextFn,false); } }
관련 권장 사항:
js 드래그 앤 드롭 페이지 넘기기 구현 code_javascript 기술
웹 페이지 키보드 제어를 구현하는 Js 방법 페이지 넘기기_javascript 기술
위 내용은 Native js는 페이지를 위아래로 넘길 수 있는 페이지 넘김 기능을 구현합니다(코드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.

보다 효율적인 코드를 작성하고 성능 병목 현상 및 최적화 전략을 이해하는 데 도움이되기 때문에 JavaScript 엔진이 내부적으로 작동하는 방식을 이해하는 것은 개발자에게 중요합니다. 1) 엔진의 워크 플로에는 구문 분석, 컴파일 및 실행; 2) 실행 프로세스 중에 엔진은 인라인 캐시 및 숨겨진 클래스와 같은 동적 최적화를 수행합니다. 3) 모범 사례에는 글로벌 변수를 피하고 루프 최적화, Const 및 Lets 사용 및 과도한 폐쇄 사용을 피하는 것이 포함됩니다.

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.

Python과 JavaScript는 커뮤니티, 라이브러리 및 리소스 측면에서 고유 한 장점과 단점이 있습니다. 1) Python 커뮤니티는 친절하고 초보자에게 적합하지만 프론트 엔드 개발 리소스는 JavaScript만큼 풍부하지 않습니다. 2) Python은 데이터 과학 및 기계 학습 라이브러리에서 강력하며 JavaScript는 프론트 엔드 개발 라이브러리 및 프레임 워크에서 더 좋습니다. 3) 둘 다 풍부한 학습 리소스를 가지고 있지만 Python은 공식 문서로 시작하는 데 적합하지만 JavaScript는 MDNWebDocs에서 더 좋습니다. 선택은 프로젝트 요구와 개인적인 이익을 기반으로해야합니다.

C/C에서 JavaScript로 전환하려면 동적 타이핑, 쓰레기 수집 및 비동기 프로그래밍으로 적응해야합니다. 1) C/C는 수동 메모리 관리가 필요한 정적으로 입력 한 언어이며 JavaScript는 동적으로 입력하고 쓰레기 수집이 자동으로 처리됩니다. 2) C/C를 기계 코드로 컴파일 해야하는 반면 JavaScript는 해석 된 언어입니다. 3) JavaScript는 폐쇄, 프로토 타입 체인 및 약속과 같은 개념을 소개하여 유연성과 비동기 프로그래밍 기능을 향상시킵니다.

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

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

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는
