シンプルなフロントエンドのページング効果を実現する js

シンプルなフロントエンドのページング効果を実現する js

比較的シンプルな業務のプロジェクトもありますが、フロントエンドのページングを多用します。プラグインのサイズ制御が難しく、使用が面倒なので、自分でシンプルなものを作成します。

実装のアイデア

jQuery.slice() を使用してサブセットの間隔要素を選択し、表示と非表示を制御します。
1 ページあたりに表示される項目数が x、現在のページ番号が y、要素インデックスが 0 から始まるとすると、表示される範囲は x(y-1) から xy になります。

効果のデモンストレーション

デモコード

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
    <メタ文字セット="UTF-8">
    <meta http-equiv="X-UA-compatible" content="IE=edge">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <title>フロントエンド ページング実装デモ</title>
</head>

<本文>
    <div class="parent">
        <ul class="box" style="min-height: 147px;">

        </ul>
        <div class="ページボックス">
            <button class="page-btn prev">前のページ</button>
            <span class="page-num">1/1</span>
            <button class="page-btn next">次のページ</button>
        </div>
    </div>

    <div class="parent">
        <ul class="box2" style="min-height: 63px;">

        </ul>
        <div class="ページボックス">
            <button class="page-btn prev">前のページ</button>
            <span class="page-num">1/1</span>
            <button class="page-btn next">次のページ</button>
        </div>
    </div>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <スクリプト>
        /**
         * ページングの初期化* @param {*}eleBox ページングするコンテナ* @param {*}size ページあたりのエントリ数*/
        関数InitPagination(eleBox, サイズ) {
            var ボックス = $(eleBox)、
                子 = box.children(),
                合計 = children.length、
                ページボックス = box.next(),
                ページ番号 = pageBox.find('.page-num'),
                maxNum = !Math.ceil(合計 / サイズ) ? 1 : Math.ceil(合計 / サイズ);

            ページ番号.text('1/' + 最大数);
            子要素を非表示にする
            children.slice(0, size).show();

            pageBox.off().on('click', '.prev, .next', 関数(e) {
                var nowNum = parseInt(pageNum.text().split('/')[0]);

                $(this).hasClass('prev') の場合 {
                    今の数--;
                    (nowNum < 1) の場合 {
                        現在数 = 1
                        戻る;
                    }
                } それ以外 {
                    今の数++;
                    (現在の数値 > 最大数値) の場合 {
                        現在数 = 最大数
                        戻る;
                    }
                }

                子要素を非表示にする
                children.slice(size * (nowNum - 1), nowNum * size).show();
                pageNum.text(nowNum + '/' + maxNum);
            })
        }
        // データ書き込みをシミュレートします var box = $('.box'), box2 = $('.box2'), li = '';
        (i = 0; i < 16; i++ とします) {
            li += '<li>' + i + '</li>'
        }
        ボックス.html(li);
            box2.html(li);

        // ページネーターをインスタンス化します new InitPagination(box, 7)
        新しいInitPagination(box2, 3)
    </スクリプト>
</本文>

</html>

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

以下もご興味があるかもしれません:
  • ページングクリックコントロールを実装するネイティブJS
  • JSはフロントエンドのページング効果を実現します
  • ページングを実現するための純粋な JavaScript (2 つの方法)
  • 非常に優れたJSページング効果コード。研究する価値がある
  • js を使用して HTML テーブル ページング例を作成する (ページングを実装する js)
  • 純粋な js ページング コード (シンプルで実用的)
  • JSP ページング表示実装コード
  • div コンテンツを表示するための js ページング
  • JS で実装されたシンプルなページングの例
  • クールなページング効果を実現するネイティブJS

<<:  MYSQL マスタースレーブ レプリケーションの知識ポイントの概要

>>:  サーバーの購入と初期構築方法

推薦する

TypeScript デコレータ定義

目次1. コンセプト1.1 定義1.2 デコレータファクトリー1.3 デコレータの組み合わせ1.4 ...

docker-maven-pluginを使用してデプロイメントを自動化する方法を説明します

1. docker-maven-pluginの紹介私たちの継続的インテグレーションプロセスでは、プロ...

数十億のデータに対するMySQLページングの最適化に関する簡単な説明

目次背景分析するデータシミュレーション1. 従業員テーブルと部門テーブルの2つのテーブルを作成します...

Linux の運用と保守で netstat の代わりに ss コマンドを使用する方法

序文Linux サーバーを操作および管理するときに、最もよく使用されるコマンドの 1 つが nets...

Js クラスの構築と継承のケースの詳細な説明

JS のクラスの定義や継承は本当に多様なので、別のノートブックを開いて記録しておきます。意味オブジェ...

ウェブページ制作でウェブフォントファイルにベクターアイコンを追加する方法

ご存知のとおり、コンピューターには 2 種類の画像があり、1 つはビットマップ、もう 1 つはベクタ...

MySQL 5.7 で業務を停止せずに従来のレプリケーションを GTID レプリケーションに変更する例

GTID の利点により、従来のファイル POS ベースのレプリケーションを GTID ベースのレプリ...

HTML と CSS の命名規則の概要

CSS命名規則 ヘッダー: ヘッダーコンテンツ: コンテンツ/含むフッターナビゲーション: navサ...

MySQL-8.0.26 構成グラフィックチュートリアル

はじめに: 最近、会社のプロジェクトでデータベースのバージョンが変更されました。ここでは、MySQL...

Reactを使用する際の7つの落とし穴のまとめ

目次1. コンポーネントの肥大化2. 状態を直接変更する3. プロパティは数値を渡す必要があるが文字...

3次元画像配置効果を実現する純粋なCSSのサンプルコード

1. 要素の幅/高さ/パディング/マージンのパーセンテージ基準要素の幅/高さ/パディング/マージンの...

最小限のルートファイルシステムを構築するためにbusyboxを移植するための詳細な手順

Busybox: 小さなコマンドが詰まったスイスアーミーナイフ。ステップ1: ディレクトリ構造を作成...

SQL グループ化により重複を削除し、他のフィールドで並べ替える

必要:あるフィールドの同一項目を結合し、別の時間フィールドで並べ替えます。例:初めに テーブルから都...

クールなバーコードエフェクトの作り方を教えます

声明:この記事では、Web ページ制作技術を使用して問題を包括的に解決するという考え方を反映して、W...

MySQL 5.7.18 のインストール中に MySQL サービスの起動に失敗する問題の解決策

MySQL は非常に強力なリレーショナル データベースです。しかし、初心者の中には、インストールや設...