ホームページ >ウェブフロントエンド >jsチュートリアル >特定のページ番号に表示されるヘルパーを若干調整し、js版を添付_javascriptスキル

特定のページ番号に表示されるヘルパーを若干調整し、js版を添付_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 18:19:391029ブラウズ

既成のものをダウンロードしたい場合は、このページにアクセスして見つけてください
ライセンスは「WTFPL」、つまり「やりたいことを公開ライセンス」です。

ソースコードは次のとおりです(コメントがあるため個別の説明は省略します):
コードをコピーコードは次のとおりです:

public static class PageNumExt
{
///
/// 渡されたデリゲートを使用してわかりやすいページ番号を計算して生成します。
///

///
/// 番号
/// ページ番号の処理方法
/// 折り畳まれたページの処理数値方法
/// 隣接するページ番号の数
/// ページ番号の臨界値。この数を超えるページ番号は折りたたまれます。
public static void PageNumView(this object o,
long currentPage, PageNumAction actionPageNum, Action actionFolding,
long maxSiblings = 2) 、longPreventFolding = 1)
{
o.PageNumView(currentPage, actionPageNum, actionPageNum, actionFolding, maxSiblings,PreventFolding);
/// 渡されたデリゲートを使用してわかりやすいページ番号を計算して生成します。現在のページ番号は特別に扱われます。
///

///
/// 番号
/// 現在のページ番号の処理方法
/// ページ番号を処理するメソッド
/// 折り畳まれたページ番号を処理する方法
/// 閉じる ページ番号の数
/// この数を超えるページ番号は折りたたまれません 🎜>public static void PageNumView(this object o,
long currentPage, PageNumAction actionCurrent,
PageNumAction actionPageNum, Action actionFolding,
long maxSiblings = 2, longPreventFolding = 1)
{
o .PageNumView(
currentPage, actionCurrent,
1, long.MaxValue,
actionPageNum, i => { },
maxSiblings, actionPageNum,
preventFolding, actionFolding,
maxSiblings, 0 ,
actionPageNum, i => { }
)
///
/// 受信パラメータとデリゲートに基づいてわかりやすいページ番号を計算して生成します。 。現在のページ番号は特別に扱われます。
///

///
/// 番号
/// 現在のページ番号の処理方法
/// 開始ページ番号
/// デフォルトの終了ページ番号
/// ページ番号
/// 折り畳まれたページ番号の処理方法
/// 隣接するページ番号の数
/// この数を超えるページは折りたたまれます PageNumView(this object o,
long currentPage, PageNumAction actionCurrent,
long beginPage, long endPage,
PageNumAction actionPageNum, Action actionFolding,
long maxSiblings = 2, longPreventFolding = 1)
{
o.PageNumView(currentPage, actionCurrent, beginPage, endPage, actionPageNum, actionPageNum, actionPageNum, actionFolding, maxSiblings,PreventFolding);
/// // を計算します。渡されたパラメータとデリゲートに基づいてわかりやすいページ番号を生成します。現在のページ番号、開始ページ番号、および終了ページ番号はすべて、処理用の特別なデリゲートに割り当てられます。
///

///
/// 番号
/// 現在のページ番号の処理方法
/// 開始ページ番号
/// デフォルトの終了ページ番号
/// /// 終了ページ番号の処理方法
/// 隣接するページ番号の処理方法
/// 折り畳まれたページ番号の処理方法
/// 隣接するページ番号の数
/// ページ番号の折りたたみを防止する重要な値。この数を超えるページは折りたたまれますlong maxSiblings = 2、longPreventFolding = 1)
{
o.PageNumView(
currentPage, actionCurrent,
beginPage, endPage,
actionBegin, actionEnd,
maxSiblings, actionSebling ,
preventFolding, actionFolding,
maxSiblings, maxSiblings,
actionSebling, actionSebling
);
}
///
/// 受信したメッセージに従って分かりやすいページ番号を計算して生成するためのパラメーターとデリゲート。各ページ番号の特定の処理メソッドには、呼び出し元によって割り当てられたデリゲートが必要です。
///
///
/// 番号
/// 現在のページ番号の処理方法
/// 開始ページ番号
/// デフォルトの終了ページ番号
/// /// 終了ページ番号の処理方法
/// /// 隣接するページ番号の処理方法 param name ="preventFolding">ページ番号の折り込みを禁止するしきい値。この数を超えるページは折り畳まれます
/// 折り畳まれたページ番号の処理方法< ;/param> 隣接するページ番号の数
/// 開始ページの隣接するページ番号の扱い
/// < ;param name=" actionEndSibling">終了ページ付近のページ番号の扱い方
public static void PageNumView(this object o,
long currentPage, PageNumAction actionCurrent,
long beginPage, long endPage、
PageNumAction actionBegin、PageNumAction actionEnd、
long currentSiblings、PageNumAction actionCurrentSibling、
longPreventFolding、Action actionFolding、
long endOfBegin、long beginOfEnd、
PageNumAction actionBeginSibling、PageNumAction actionEndSibling
)
{
long i = beginPage;
//開始ページが現在のページより小さい場合、開始ページの処理を開始します
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 = beginOfEnd -PreventFolding;
if (i
foldingStart) // 折り畳みの最後の行に触れずに、すぐに折り畳みを開始します
{
actionFolding();
i = beginOfEnd>}
else //すべてを現在のページとして扱います 隣接するページを処理しますが、終了ページの隣接するページは保持します
for (; i < beginOfEnd; i )
actionCurrentSibling(i);

for (; i < ; endPage; i )
actionEndSibling(i);
#endregion
}
ソースコードJavaScript バージョンのコードは先頭に直接配置できます。 上記のページをダウンロードしますが、ここにもリストします:



コードをコピー

コードは次のとおりです:

!function () {
var g = this;
var def_preventFolding = 1;
currentPage, actionPageNum, actionFolding,
maxSiblings,PreventFolding
) {
///
/// 渡されたデリゲートを使用してわかりやすいページ番号を計算して生成します。
///

///
/// 番号
/// ページ番号の処理方法
/// 折り畳まれたページの処理数値方法
/// 隣接するページ番号の数
/// ページ番号のクリティカル値。この数を超えるページ番号は折りたたまれます。
pnView2(currentPage, actionPageNum, actionPageNum, actionFolding, maxSiblings || def_maxSiblings,PreventFolding || def_preventFolding); function pnView2(
currentPage, actionCurrent,
actionPageNum, actionFolding,
maxSiblings,PreventFolding
) {
///
/// デリゲートで渡されたものを使用して計算されます。分かりやすいページ番号を生成します。現在のページ番号は特別に扱われます。
///

///
/// 番号
/// 現在のページ番号の処理方法
/// ページ番号を処理するメソッド
/// 折り畳まれたページ番号を処理する方法
/// 閉じる ページ番号の数
/// この数を超えるページ番号は折りたたまれません 🎜>pnView(
currentPage, actionCurrent,
1, Number.POSITIVE_INFINITY,
actionPageNum, null,
maxSiblings || def_maxSiblings, actionPageNum,
preventFolding || def_preventFolding, actionFolding,
maxSiblings || def_maxSiblings , 0,
actionPageNum, null
);
function pnView3(
currentPage, actionCurrent,
beginPage, endPage,
actionPageNum, actionFolding,
maxSiblings,PreventFolding
) {
///
/// 渡されたパラメーターとデリゲートに基づいてわかりやすいページ番号を計算して生成します。現在のページ番号は特別に扱われます。
///

///
/// 番号
/// 現在のページ番号の処理方法
/// 開始ページ番号
/// デフォルトの終了ページ番号
/// ページ番号
/// 折り畳まれたページ番号の処理方法
/// 隣接するページ番号の数
/// この数を超えるページは折りたたまれます
pnView4(currentPage) 、actionCurrent、beginPage、endPage、actionPageNum、actionPageNum、actionPageNum、actionFolding、maxSiblings、preventFolding ||
}
function pnView4(
currentPage、actionCurrent、
beginPage、endPage、
actionBegin, actionEnd,
actionSebling, actionFolding,
maxSiblings,PreventFolding
) {
///
/// に渡されたパラメータに従って、デリゲートは分かりやすいページ番号を計算して生成します。現在のページ番号、開始ページ番号、および終了ページ番号はすべて、処理用の特別なデリゲートに割り当てられます。
///

///
/// 番号
/// 現在のページ番号の処理方法
/// 開始ページ番号
/// デフォルトの終了ページ番号
/// /// 終了ページ番号の処理方法
/// 隣接するページ番号の処理方法
/// 折り畳まれたページ番号の処理方法
/// 隣接するページ番号の数
/// ページ番号の折りたたみを防止する重要な値。この数を超えるページは折りたたまれます
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
) {
/// // / わかりやすいページ番号を計算して生成します。渡されたパラメータとデリゲートについて。各ページ番号の特定の処理メソッドには、呼び出し元によって割り当てられたデリゲートが必要です。
///
///
/// 番号
/// 現在のページ番号の処理方法
/// 開始ページ番号
/// デフォルトの終了ページ番号
/// /// 終了ページ番号の処理方法
/// /// 隣接するページ番号の処理方法 param name ="preventFolding">ページ番号の折り込みを禁止するしきい値。この数を超えるページは折り畳まれます
/// 折り畳まれたページ番号の処理方法< ;/param> 隣接するページ番号の数
/// 開始ページの隣接するページ番号の扱い
/// < ;param name=" actionEndSibling">終了ページに隣接するページ番号の処理方法
var i = beginPage
// 開始ページが現在のページより小さい場合、処理を開始します。 starting page
if (beginPage < ; currentPage) {
actionBegin && actionBegin(beginPage)
i ;
endOfBegin = i; // 開始ページに近いページ番号を解決した後siblingBegin = currentPage - currentSiblings; // 現在のページ 隣接するページはどこから始まりますか?
varfoldingStart = siblingBegin -PreventFolding; // ページ番号の最後の行
if (endOfBegin > siblingBegin)
endOfBegin = siblingBegin; // 現在のページの隣接ページを犠牲にし、開始ページの隣接ページを犠牲にします。
for (; i actionBeginSibling && actionBeginSibling(i); {
actionFolding && actionFolding(); // 折り畳み後のページ番号にジャンプします
}
}
// 現在のページの前の近接を処理します 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 < target; i )
actionCurrentSibling && actionCurrentSibling(i)
// 終了ページが現在のページより大きい場合、開始します。終了ページの処理
if (endPage > currentPage) {
beginOfEnd = endPage - beginOfEnd; // 終了ページの隣接するページの開始位置を計算します
varfoldingStart = beginOfEnd -PreventFolding; i {
actionFolding && actionFolding();
i = beginOfEnd>}
else //現在のページに隣接するページとして扱われますが、終了ページの隣接ページは保持されます
{
for (; i actionCurrentSibling && actionCurrentSibling(i);
; 🎜>
for (; i < ; endPage; i )
actionEndSibling && actionEndSibling(i);
actionEnd && actionEnd(endPage);
g.pnView1 =
g.pnView2 = pnView3;
g.pnView5 = pnView; } ();



/201009/yuanma/pnView_NanaView.rar
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。