JavaScriptページングコンポーネントの使い方の詳細な説明

JavaScriptページングコンポーネントの使い方の詳細な説明

ページネーションコンポーネントはWeb開発でよく使われるコンポーネントです。ページネーション機能を実装し、id jsPaginationを持つDOM要素にページネーション表示部分を完成させてください。要件は次のとおりです。

1. 最大 5 ページを連続して表示し、現在のページを中央に強調表示します (デモ 1 を参照)
2. 合計が0の場合、要素全体を非表示にします(デモ2を参照)
3. 合計 <= 5 の場合、すべてのページを表示し、「最初のページ」と「最後のページ」の要素を非表示にします (デモ 3 に示すように)
4. 現在のページが中央で 5 ページ未満の場合は、後ろ (前) に 5 ページを追加し、「最初のページ」(「最後のページ」) 要素を非表示にします (デモ 4 およびデモ 5 に示すように)。
5. 合計と現在値はどちらも正の整数で、1 <= 現在値 <= 合計値

上記の要件を満たすページング コンポーネントを実装するには、ネイティブ JS を使用します。以下の点に注意する必要がある

1: <li> タグを取得する場合、前の <li> タグと次の <li> タグの間にテキスト ノードがあるため、 nextSibling を 2 回使用する必要があります。

ページ = page.nextSibling.nextSibling;

2: 提供された<li>タグのinnerHTMLは''であり、そこにページ番号を追加する必要があります。要件の5つの状況に従って記述します。

3: 最初のページと最後のページの非表示状態に特に注意してください。 current-2<=1 の場合、最初のページを非表示にします。current+2.>=total の場合、最後のページを非表示にします。最初のページと最後のページを非表示にする必要があるのは、上記の demo1、demo3、demo4、demo5 の場合です。 (demo1 の最初と最後のページが非表示になっていることは見落とされがちです!)

html

<ul class="pagination" id="jsPagination">
    <li>ホーム</li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li>最後のページ</li>
</ul>

CS

。隠れる{
    表示: なし!重要;
}
.ページネーション{
    マージン: 0 自動;
    パディング: 0;
    リストスタイル: なし;
    テキスト配置: 中央;
}
.ページネーション li{
    表示: インラインブロック;
    幅: 30ピクセル;
    高さ: 30px;
    オーバーフロー: 非表示;
    行の高さ: 30px;
    マージン: 0 5px 0 0;
    フォントサイズ: 14px;
    テキスト配置: 中央;
    境界線: 1px実線 #00bc9b;
    色: #00bc9b;
    カーソル: ポインタ;
}
.ページネーション li.current,
.pagination li:hover{
    背景: #00bc9b;
    色: #ffffff;
}
.デモ{
    マージン: 10px 0;
    パディング: 10px;
    背景: #eeeeee;
    テキスト配置: 中央;
}

JavaScript

関数ページネーション(合計、現在) {
        var ele = document.getElementById('jsPagination');
        //デモ1用
        if(現在-2>=1&¤t+2<=合計)
        {
            var page=ele.firstChild.nextSibling;
            (現在の2==1)の場合
                page.className='非表示';
            (変数 i=current-2,p=current-2;i<=current+2;p++,i++) の場合
            {
                ページ=page.nextSibling;
                console.log(ページ);
                ページ=page.nextSibling;
                console.log(ページ);
                ページ内HTMLをコピーします。
                if(i==現在)
                    page.className='現在の';
            }
            if(現在+2==合計)
            {
                var last = page.nextSibling.nextSibling;
                last.className='非表示';
            }
        }
        //デモ2用
        そうでない場合(合計==0)
        {
            ele.className='ページネーションを非表示';
        }
        //デモ3用
        そうでない場合(合計<=5)
        {
            var fir = ele.firstChild.nextSibling;
            fir.className='非表示';
            var page=fir;
            (変数 i=1;i<=5;i++) {
                ページ = page.nextSibling.nextSibling;
                (i <= 合計) の場合 {
                    ページ内HTMLをコピーします。
                    if(i==現在)
                        page.className='現在の';
                }
                それ以外
                {
                    page.className='非表示';
                }
 
            }
            var last = page.nextSibling.nextSibling;
            last.className='非表示';
        }
        //デモ4用
        そうでなければ(現在-2<=0)
        {
            var page=ele.firstChild.nextSibling;
            page.className='非表示';
            (変数 i=1;i<=5;i++) {
                ページ = page.nextSibling.nextSibling;
                ページ内HTMLをコピーします。
                    if(i==現在)
                        page.className='現在の';
            }
 
        }
        //デモ5用
        そうでない場合(現在+2>合計)
        {
            var page=ele.firstChild.nextSibling;
            for(var i=total-4;i<=total;i++) {
                ページ = page.nextSibling.nextSibling;
                ページ内HTMLをコピーします。
                if(i==現在)
                    page.className='現在の';
            }
            var last = page.nextSibling.nextSibling;
            last.className='非表示';
 
        }
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue.js ページング コンポーネントの実装: diVuePagination の使用方法の詳細な説明
  • Vuejs2.0は、$emitを使用してイベントをリッスンし、ページングコンポーネントでデータを送信する方法を実装しています。
  • AngularJS ディレクティブを使用してページングコンポーネントを実装する例
  • Reactjsはユニバーサルページングコンポーネントのサンプルコードを実装します
  • ネイティブjsはオブジェクト指向のページングコンポーネントを記述します
  • Vue.js はカスタムページングコンポーネント vue-paginaiton を実装します
  • vue.js を使用してページング コンポーネントを作成する
  • Vue.js ベースのテーブル ページング コンポーネント
  • js多機能ページングコンポーネントlayPageの使い方の詳しい説明
  • 自分で書いたシンプルなJavaScriptページングコンポーネントを共有します

<<:  MySQL 8.0.17 のインストールと使用方法のチュートリアル図

>>:  ウェブサイトの高速化における CDN、SCDN、DCDN の違いは何ですか?どうやって選ぶ?

推薦する

CSS3はウェブサイトの製品表示効果図を実現します

この記事では、CSS3 を使用した Web サイトの商品表示の効果を紹介し、皆さんと共有します。詳細...

プレフィックスケースを削除する Nginx リバース プロキシ構成のチュートリアル

nginx をリバース プロキシとして使用する場合、リクエストをそのまま次のサービスに転送するだけで...

シームレスなカルーセルを実現するjQueryプラグイン

シームレス カルーセルは非常に一般的なエフェクトであり、ロジックを理解すれば非常に簡単です。効果は以...

nofollowタグの使用と分析に関する簡単な説明

nofollowをめぐる論争Zac と Guoping の間では、nofollow が PR を無駄...

MySQLのGROUP BYステートメントを最適化する方法

MySQL で、id、a、b の 3 つのフィールドを持つ新しいテーブルを作成します。次のように、同...

Centos7はMySQLログに基づいてデータを復元するためのサンプルコードを実装します

導入Binlog ログ、つまりバイナリ ログ ファイルは、データベースに対するユーザー操作の SQL...

Vueトップタグ閲覧履歴の実装

目次ナンセンス実装された機能文章要点ナンセンスデモプレビュー実装された機能デフォルトでホームページが...

MySql が常に mySqlInstallerConsole ウィンドウをポップアップする問題の解決策

MySql は常に MySQLInstallerConsole.exe ウィンドウを定期的にポップア...

Ubuntu で起動時に自動的に起動するシェル スクリプトを作成する (推奨)

スクリプトを書く目的は、さまざまなサービスを手動で起動しなくて済むようにすることです(怠惰のためでも...

インデックスを使用して数千万のデータを持つ MySQL のクエリ速度を最適化する

1. インデックスの役割一般的に言えば、インデックスは本の目次に相当します。条件に基づいてクエリを実...

Docker nginxは1つのホストを実装して複数のサイトを展開します

とあるサイトからレンタルした仮想マシンの有効期限が近づいており、更新料が200元以上かかります。Al...

LinuxはNetworkManagerを使用してMACアドレスをランダムに生成します

今では、自宅のソファーに座っていても、外の喫茶店にいても、ノートパソコンの電源を入れてWi-Fiに接...

JDBC および MySQL 一時テーブルスペースの詳細な分析

背景一時テーブルスペースは、データベースのソート操作を管理し、一時テーブルや中間ソート結果などの一時...

MySQL で重複を削除するには、distinct または group by を使用する必要がありますか?

序文group by と distinctive のパフォーマンス比較について: インターネット上の...