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 の違いは何ですか?どうやって選ぶ?

推薦する

VMware vCenter 6.7 のインストール プロセス (グラフィック チュートリアル)

背景当初は VMware の公式 Web サイトから 6.7 Vcenter をダウンロードしたかっ...

Vue3 でパンくず関数コンポーネントをカプセル化するいくつかの方法

目次序文1. パンくずリストはなぜ必要なのでしょうか? 2. 一次包装1. 実装のアイデア2. コー...

MySQL シリーズ II マルチインスタンス構成

チュートリアルシリーズMySQL シリーズ: MySQL リレーショナル データベースの基本概念My...

Flexレイアウトとスケーリング計算についての簡単な説明

1. Flexレイアウトの紹介Flex は Flexible Box の略で、「柔軟なレイアウト」を...

ボタンと入力タイプの違いと注意点

<button> タグ<br />定義と使用法<button> ...

JavaScript の条件付きアクセス属性と矢印関数の紹介

目次1. 条件付きアクセス属性2. アロー関数の紹介1. 条件付きアクセス属性?. は ES2020...

jsネイティブ構文プロトタイプ、__proto__、コンストラクタの徹底的な理解

目次1 はじめに2 前提条件2.1 データ型2.2 それが自身のプロパティであるかどうかを判断する ...

Linux システムで tcpdump を使用してパケットをキャプチャする方法

まずサンプルコードを見てみましょう: 1. 共通パラメータ tcpdump -i eth0 -nn ...

Linux システムで TCP 接続を作成するプロセスの紹介

目次LinuxでTCPを作成する手順サーバクライアントTCP確立プロセスサンプルコードLinuxでT...

フロントエンドHTMLスキン変更機能の実装コード

透明を含む5つの肌の色を変更するには50行のコードが必要です最初にコードをお渡ししますので、ご自身で...

Linux に nginx をインストールする方法

Nginx は C 言語で開発されており、Linux で実行することをお勧めします。もちろん、Win...

mysql 簡単な操作例を表示

この記事では、例を挙げて mysql show 操作について説明します。ご参考までに、詳細は以下の通...

デザイナーはコーディングを学ぶ必要がありますか?

多くの場合、 Web デザインが完成した後でデザイナーの無知が露呈し、批判されることがあります。彼ら...

Tomcat9 のダウンロード、インストール、設定 + Eclipse への統合に関する詳細なチュートリアル

トムキャット公式サイトtomcatはローカルサーバーと同等であり、Webページを開くことができます設...

CSS3は、欠けた角の長方形、折り畳まれた角の長方形、欠けた角の境界線を実装しています。

序文数日前、偶然、コーナーの四角形が欠落している機能に遭遇しました。最初に頭に浮かんだのは、必要な場...