シンプルなフロントエンドのページング効果を実現する 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 マスタースレーブ レプリケーションの知識ポイントの概要

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

推薦する

JS でカルーセル効果を実現する 3 つの簡単な方法

この記事では、JSカルーセル効果の具体的なコードを実現するための3つの方法を紹介します。具体的な内容...

Linux での MySQL のインストールに関する詳細なチュートリアル

1. MySQLサービスをシャットダウンする# service mysqld stop 2. rpm...

CSS で左上の三角形を作成するいくつかの方法の詳細な説明

今日は、CSS を使用して左上の三角形を記述するいくつかの方法を紹介します。概略図(幅と高さを60p...

MySQL 5.7 をインストールした後にコマンドライン ウィンドウを開くとクラッシュする問題の解決方法

序文最近、MySQL 5.7 をインストールしましたが、問題が見つかりました。コマンド ライン ウィ...

CSS で平均レイアウトを実現するために負のマージンを使用する例

均等に分散されたレイアウトの場合、通常はネガティブ マージン方式を使用します。次の図は平均的なレイア...

Vueは左上と右上のスライドナビゲーションを実装します

ナビゲーションなどは日々の開発でよく使うので、記録として記事を書きます。ナビゲーションは終了/開始位...

ReactにおけるuseRefの具体的な使い方

React の経験がある人なら、コンポーネントインスタンスオブジェクトや DOM オブジェクトを取得...

doctype のマークアップ検証

しかし最近、この方法を使用すると問題が発生することがわかりました。コードを参照してください。コードを...

JS のディープコピーとシャローコピーの詳細

目次1. 浅いコピーとはどういう意味ですか? 2. ディープコピーとはどういう意味ですか? 3. デ...

Linux のメモリ管理とアドレス指定の詳細な紹介

目次1. コンセプトメモリ管理モード住所種別分類例: 2. ページ管理x86 アーキテクチャ 32 ...

高品質なウェブページのデザイン方法 高品質なウェブページ(画像とテキスト)のデザイン経験

オープンプラットフォームの増加に伴い、そこから派生するさまざまなアプリケーションサービスも増加傾向に...

MySQLのレプリケーションの詳細な分析

1.MySQLレプリケーションの概念これは、プライマリ データベースの DDL および DML 操作...

インデックススキャンを使用したMySQLソート

目次sakilaをインストールするインデックススキャンソートテーブル構造インデックススキャンをソート...

Web ページのソース ファイルを表示できない場合はどうすればよいですか?

Q: Outlook または IE のどちらを使用している場合でも、マウスを右クリックすると、ポッ...

JavaScript strictモードの概要 strictを使用する

目次1. 概要1.1 厳密モードとは何ですか? 1.2 厳密モードの目的2. 厳密モードを有効にする...