> 웹 프론트엔드 > JS 튜토리얼 > 특정 페이지 번호에 표시되는 헬퍼가 약간 조정되었으며, js 버전이 첨부되어 있습니다_javascript 기술

특정 페이지 번호에 표시되는 헬퍼가 약간 조정되었으며, js 버전이 첨부되어 있습니다_javascript 기술

WBOY
풀어 주다: 2016-05-16 18:19:39
원래의
1048명이 탐색했습니다.

만약 미리 만들어진 것을 다운로드하고 싶다면 이 페이지로 가서찾을 수 있습니다.
라이센스는 "WTFPL", 즉 "Do What The Fuck You Want To Public License"입니다.

소스코드는 다음과 같습니다(댓글이 있어서 따로 설명하지 않겠습니다):
코드 복사 코드는 다음과 같습니다.

public static class PageNumExt
{
///
/// 전달된 대리자를 사용하여 친숙한 페이지 번호를 계산하고 생성합니다.
///

///
/// 현재 페이지 number /// 페이지 번호 처리 방법
/// 접힌 페이지 처리 숫자 방식
/// 인접 페이지 번호 수
/// 접기 방지 이 숫자를 초과하는 페이지 번호는 접혀집니다
public static void PageNumView(this object o,
long currentPage, PageNumAction actionPageNum, Action actionFolding,
long maxSiblings = 2 , long 막기Folding = 1)
{
o.PageNumView(currentPage, actionPageNum, actionPageNum, actionFolding, maxSiblings, 막기Folding)
/// 전달된 대리자를 사용하여 친숙한 페이지 번호를 계산하고 생성합니다. 현재 페이지 번호는 특별하게 처리됩니다.
///

///
/// 현재 페이지 number
/// 현재 페이지 번호 처리 방법
/// 방법 페이지 번호 처리 방법
/// 접힌 페이지 번호 처리 방법
/// 닫기 페이지 번호
/// 이 번호를 초과하는 페이지 번호가 접히는 것을 방지하는 임계값입니다 🎜>public static void PageNumView(이 개체 o,
long currentPage, PageNumAction actionCurrent,
PageNumAction actionPageNum, Action actionFolding,
long maxSiblings = 2, long PreventFolding = 1)
{
o .PageNumView(
currentPage, actionCurrent,
1, long.MaxValue,
actionPageNum, i => { },
maxSiblings, actionPageNum,
preventFolding, actionFolding,
maxSiblings, 0 ,
actionPageNum, i => { }
)
}
/// . 현재 페이지 번호는 특별하게 처리됩니다.
///

///
/// 현재 페이지 number /// 현재 페이지 번호 처리 방법
/// Default 시작 페이지 번호/// 기본 끝 페이지 번호
/// 처리 방법 페이지 번호
/// 접힌 페이지 번호 처리 방법
/// 번호 인접 페이지 번호
/// 이 숫자를 초과하는 페이지는 접혀집니다. public static void PageNumView(이 개체 o,
long currentPage, PageNumAction actionCurrent,
long startPage, long endPage,
PageNumAction actionPageNum, Action actionFolding,
long maxSiblings = 2, long PreventFolding = 1)
{
o.PageNumView(currentPage, actionCurrent, BeginPage, endPage, actionPageNum, actionPageNum, actionPageNum, actionFolding, maxSiblings, PreventFolding)
}
/// 전달된 매개변수와 대리자를 기반으로 친숙한 페이지 번호를 생성합니다. 현재 페이지 번호, 시작 페이지 번호 및 끝 페이지 번호는 모두 처리를 위해 할당된 특별 대리인입니다.
///

///
/// 현재 페이지 number /// 현재 페이지 번호 처리 방법
/// Default 시작 페이지 번호/// 기본 끝 페이지 번호
/// 처리 방법 시작 페이지 번호
/// 끝 페이지 번호 처리 방법
/// 인접 페이지 번호 처리 방법
/// 접힌 페이지 번호 처리 방법
/// 인접 페이지 번호 수
/// 페이지 번호 접힘을 방지하는 임계값입니다. 이 숫자를 초과하는 페이지는 접혀집니다long maxSiblings = 2, long PreventFolding = 1)
{
o.PageNumView(
currentPage, actionCurrent,
beginPage, endPage,
actionBegin, actionEnd,
maxSiblings, actionSebling ,
preventFolding, actionFolding,
maxSiblings, maxSiblings,
actionSebling, actionSebling
)
}
/// /// 친숙한 페이지 번호를 계산하고 생성하는 매개변수 및 대리자입니다. 각 페이지 번호의 구체적인 처리 방법에는 발신자가 할당한 대리인이 필요합니다.
///

///
/// 현재 페이지 number /// 현재 페이지 번호 처리 방법
/// Default 시작 페이지 번호/// 기본 끝 페이지 번호
/// 처리 방법 시작 페이지 번호
/// 끝 페이지 번호 처리 방법
/// 현재 페이지 번호의 인접 페이지 번호
/// 인접 페이지 번호 처리 방법 param name ="preventFolding">페이지 번호 접기를 방지하는 임계값입니다. 이 숫자를 초과하는 페이지는 접혀집니다.
/// 접힌 페이지 번호 처리 방법< ;/param> 인접 페이지 번호
/// 시작 페이지의 인접 페이지 번호 처리 방법 ;param name=" actionEndSibling">끝 페이지 근처의 페이지 번호를 처리하는 방법
public static void PageNumView(this object o,
long currentPage, PageNumAction actionCurrent,
long startPage, long endPage,
PageNumAction actionBegin, PageNumAction actionEnd,
long currentSiblings, PageNumAction actionCurrentSibling,
long PreventFolding, Action actionFolding,
long endOfBegin, long startOfEnd,
PageNumAction actionBeginSibling, PageNumAction actionEndSibling
)
{
long i = startPage;
//시작 페이지가 현재 페이지보다 작으면 시작 페이지 처리를 시작합니다
if (beginPage < currentPage)
#region
{
actionBegin(beginPage ; = siblingBegin - PreventFolding; // 페이지 번호 접기의 맨 아래 줄
if (endOfBegin > siblingBegin)
endOfBegin = siblingBegin; // 현재 페이지의 인접 페이지 확인 , 시작 페이지의 인접한 페이지를 희생합니다
for (; i < endOfBegin; i )
actionBeginSibling(i)
if (i < 도달하면 즉시 접기 시작
{
actionFolding();
i =foldingStart 1; // 접은 후 페이지 번호로 이동
}
}
#endregion
/ / 현재 페이지 이전의 인접 페이지 처리
for (; i < currentPage ; i )
actionCurrentSibling(i)
// 현재 페이지 처리
actionCurrent(currentPage); i = currentPage 1; // 현재 페이지가 처리되었음을 나타냅니다.
// 현재 페이지와 원하는 시작 페이지의 관계를 보장할 수 없으므로 현재 페이지부터 계산이 시작됩니다.
var goal = i currentSiblings; // 목표 설정
if (goal > endPage) // 목표는 종료 페이지를 초과하면 안 됩니다.
goal = endPage>// 이후 근접 처리 대상 페이지에 도달할 때까지 현재 페이지 페이지
for (; i actionCurrentSibling(i)
// 끝 페이지가 현재 페이지보다 크면 끝 처리를 시작합니다. page
if ( endPage > currentPage)
#region
{
beginOfEnd = endPage - BeginOfEnd; // 끝 페이지의 인접한 페이지가 시작되는 위치 계산
varfoldingStart = startOfEnd - PreventFolding;
if (i {
actionFolding()
i = startOfEnd
}
else // 모든 것을 현재 페이지로 처리합니다. 인접한 페이지를 처리하지만 마지막 페이지의 인접한 페이지는 유지합니다.
for (; i < startOfEnd; i )
actionCurrentSibling(i);

for (; i < ; endPage; i )
actionEndSibling(i);
actionEnd(endPage);
#endregion
}
} 소스 코드 JavaScript 버전은 맨 앞에 직접 있을 수 있습니다. 언급된 페이지를 다운로드하고 여기에도 나열하세요.



코드 복사
코드 다음과 같습니다.

!function () {
var g = this;
var def_maxSiblings = 2;
var def_preventFolding = 1;
currentPage, actionPageNum, actionFolding,
maxSiblings, PreventFolding
) {
///
/// 전달된 대리자를 사용하여 친숙한 페이지 번호를 계산하고 생성합니다.
///

///
/// 현재 페이지 number /// 페이지 번호 처리 방법
/// 접힌 페이지 처리 숫자 방식
/// 인접 페이지 번호 수
/// 접기 방지 이 숫자를 초과하는 페이지 번호는 접혀집니다.
pnView2(currentPage, actionPageNum, actionPageNum, actionFolding, maxSiblings || def_maxSiblings, PreventFolding || def_preventFolding)
function pnView2(
currentPage, actionCurrent,
actionPageNum, actionFolding,
maxSiblings, PreventFolding
) {
///
/// 전달된 대리자를 사용하여 계산됩니다. 친숙한 페이지 번호를 생성합니다. 현재 페이지 번호는 특별하게 처리됩니다.
///

///
/// 현재 페이지 number
/// 현재 페이지 번호 처리 방법
/// 방법 페이지 번호 처리 방법
/// 접힌 페이지 번호 처리 방법
/// 닫기 페이지 번호
/// 이 번호를 초과하는 페이지 번호가 접히는 것을 방지하는 임계값입니다 🎜>pnView(
currentPage, actionCurrent,
1, Number.POSITIVE_INFINITY,
actionPageNum, null,
maxSiblings || def_maxSiblings, actionPageNum,
preventFolding || def_preventFolding, actionFolding,
maxSiblings || def_maxSiblings , 0,
actionPageNum, null
); 🎜>maxSiblings, PreventFolding
) {
///
/// 전달된 매개변수와 대리자를 기반으로 친숙한 페이지 번호를 계산하고 생성합니다. 현재 페이지 번호는 특별하게 처리됩니다.
///

///
/// 현재 페이지 number /// 현재 페이지 번호 처리 방법
/// Default 시작 페이지 번호/// 기본 끝 페이지 번호
/// 처리 방법 페이지 번호
/// 접힌 페이지 번호 처리 방법
/// 번호 of 인접 페이지 번호
/// 이 숫자를 초과하는 페이지는 접혀집니다.
pnView4(currentPage , actionCurrent, BeginPage, endPage, actionPageNum, actionPageNum, actionPageNum, actionFolding, maxSiblings || def_maxSiblings, PreventFolding || def_preventFolding)
}
function pnView4(
currentPage, actionCurrent,
startPage, endPage,
actionBegin, actionEnd,
actionSebling, actionFolding,
maxSiblings, PreventFolding
) {
///
/// 전달된 매개변수에 따라 위임 친숙한 페이지 번호를 계산하고 생성합니다. 현재 페이지 번호, 시작 페이지 번호 및 끝 페이지 번호는 모두 처리를 위해 할당된 특별 대리인입니다.
///

///
/// 현재 페이지 number /// 현재 페이지 번호 처리 방법
/// Default 시작 페이지 번호/// 기본 끝 페이지 번호
/// 처리 방법 시작 페이지 번호
/// 끝 페이지 번호 처리 방법
/// 인접 페이지 번호 처리 방법
/// 접힌 페이지 번호 처리 방법
/// 인접한 페이지 번호의 수
/// 페이지 번호 접힘을 방지하는 임계값입니다. 이 숫자를 초과하는 페이지는 접혀집니다
pnView(
currentPage, actionCurrent,
beginPage, endPage,
actionBegin, actionEnd,
maxSiblings || def_maxSiblings, actionSebling,
preventFolding || >maxSiblings || def_maxSiblings, maxSiblings | | def_maxSiblings,
actionSebling, actionSebling
);
}
function pnView(
currentPage, actionCurrent,
beginPage, endPage,
actionBegin , actionEnd,
currentSiblings, actionCurrentSibling,
preventFolding, actionFolding,
endOfBegin, BeginOfEnd,
actionBeginSibling, actionEndSibling
) {
///
// / 친숙한 페이지 번호를 기반으로 계산하고 생성합니다. 전달된 매개변수와 대리자에 대해. 각 페이지 번호의 구체적인 처리 방법에는 발신자가 할당한 대리인이 필요합니다.
///

///
/// 현재 페이지 number /// 현재 페이지 번호 처리 방법
/// Default 시작 페이지 번호/// 기본 끝 페이지 번호
/// 처리 방법 시작 페이지 번호
/// 끝 페이지 번호 처리 방법
/// 현재 페이지 번호의 인접 페이지 번호
/// 인접 페이지 번호 처리 방법 param name ="preventFolding">페이지 번호 접기를 방지하는 임계값입니다. 이 숫자를 초과하는 페이지는 접혀집니다.
/// 접힌 페이지 번호 처리 방법< ;/param> 인접 페이지 번호
/// 시작 페이지의 인접 페이지 번호 처리 방법 ;param name=" actionEndSibling">끝 페이지에 인접한 페이지 번호 처리 방법
var i = BeginPage;
// 시작 페이지가 현재 페이지보다 작으면 처리를 시작합니다. 시작 페이지
if (beginPage < ; currentPage) {
actionBegin && actionBegin(beginPage);
i ;
endOfBegin = i; // 시작 페이지에 가까운 페이지 번호를 확인한 후
var siblingBegin = currentPage - currentSiblings; // 인접한 페이지는 어디에서 시작됩니까?
varfoldingStart = siblingBegin - PreventFolding; //페이지 번호 접기의 맨 아래 줄
if (endOfBegin > siblingBegin)
endOfBegin = siblingBegin; // 현재 페이지의 인접 페이지를 보장하고 시작 페이지의 인접 페이지를 희생합니다.
for (; i < endOfBegin; i )
actionBeginSibling && actionBeginSibling(i)
if (i {
actionFolding && actionFolding()
i =foldingStart 1 //접기 후 페이지 번호로 이동;
}
}
// 현재 페이지 이전의 근접성을 처리합니다. Page
for (; i < currentPage; i )
actionCurrentSibling && actionCurrentSibling(i)
// 처리 현재 페이지
actionCurrent && actionCurrent(currentPage);
i = currentPage 1; // 현재 페이지가 처리되었음을 나타냅니다.
// 현재 페이지와 원하는 시작 페이지의 관계를 보장할 수 없으므로 현재 페이지부터 계산이 시작됩니다.
var goal = i currentSiblings; // 목표 설정
if (goal > endPage) // 목표는 종료 페이지를 초과하면 안 됩니다.
goal = endPage>// 이후 근접 처리 대상 페이지에 도달할 때까지 현재 페이지 페이지
for (; i < goal; i )
actionCurrentSibling && actionCurrentSibling(i)
// 끝 페이지가 현재 페이지보다 크면 시작합니다. 끝 페이지 처리
if (endPage > currentPage) {
beginOfEnd = endPage - BeginOfEnd; // 끝 페이지의 인접한 페이지가 시작되는 위치를 계산합니다.
varfoldingStart = startOfEnd - PreventFolding
if ( i {
actionFolding && actionFolding()
i = startOfEnd
}
else // 현재 페이지에 인접한 페이지로 처리되지만 끝 페이지의 인접한 페이지는 유지합니다
{
for (; i < startOfEnd; i )
actionCurrentSibling && actionCurrentSibling(i)
}

for (; i < ; endPage; i )
actionEndSibling && actionEndSibling(i)
actionEnd && actionEnd(endPage)
}
}
g.pnView1 = pnView1;
g.pnView2 = pnView3;
g.pnView4 = pnView4;
g.pnView =
} ();



/201009/yuanma/pnView_NanaView.rar
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿