ページングクリックコントロールを実装するネイティブJS

ページングクリックコントロールを実装するネイティブJS

これは、ネイティブJSを使用してページングクリックコントロールを実装する必要がある面接の質問です。参考までに、具体的な内容は次のとおりです。

1. ホームページ、前のページ、次のページ、最後のページをクリックすると、対応する数字が赤色に変わります。
2. ページ 1 ではホームページや前のページをクリックできません。
3. 10 ページでは次のページをクリックできません。
4. ページ番号を入力してページ番号にジャンプする機能を実装します。

html

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <meta http-equiv="X-UA-compatible" content="ie=edge">
    <title>ページ</title>
    <スタイル>
        *{
            マージン: 0px;
            リストスタイルタイプ: なし;
        }
        ヘッダー、フッター、セクション{
            ボックスのサイズ: 境界線ボックス;
            テキスト配置: 中央;
            パディング: 5px;
        }
        ヘッダー、フッター{
            背景色: アクアマリン;
            フォントサイズ: 25px;
        }
        #コンテンツ{
            ディスプレイ: フレックス;
            flex-direction: 列;
            コンテンツの中央揃え: 中央;
            アイテムの位置を中央揃えにします。
            flex-wrap: nowrap;
            高さ: 500px;
            背景色: アンティークホワイト;
        }
        。コンテンツ{
            境界線: 1px 点線 サドルブラウン;
            最小幅: 700px;
            最小高さ: 440px;
            背景色: ダークシアン;
        }
        #changePage li{
            表示: インラインブロック;
        }
        。今{
            色:赤;
        }
        。隠れる{
            表示: 非表示
        }
    </スタイル>
</head>
<本文>
    <header>これはヘッダーです</header>
    <セクション>
        <div id="コンテンツ">
            <h2>これはコンテンツです</h2>
            <div class="content">
                <p>これはコンテンツです</p>
                <p id="単語"></p>
            </div>
            <div id="ページ変更">
                <ul>
                    <li><button id="homePage" disabled="true">ホーム</button></li>
                    <li><button id="prev" disabled="true">前のページ</button></li>
                    <li id="btns">
                        <button class="now">1</button>
                        <ボタン>2</ボタン>
                        <ボタン>3</ボタン>
                        <ボタン>4</ボタン>
                        <ボタン>5</ボタン>
                        <ボタン>6</ボタン>
                        <ボタン>7</ボタン>
                        <ボタン>8</ボタン>
                        <ボタン>9</ボタン>
                        <ボタン>10</ボタン>
                    </li>
                    <li><button id="next">次のページ</button></li>
                    <li><button id="lastPage">最後のページ</button></li>
                    <li id ​​="enter"><input type="number" value="1" min="1" max="10">
                        <button>OK</button>
                        ページ <span>1</span>
                </ul>
            </div>
        </div>
    </セクション>
    <footer>これはフッターです</footer>
    <script src="js/page.js"></script>
</本文>
</html>

JavaScript

NUM = 1 とします。
 
//メイン関数、イベント関数changepage()をバインドする{
    btns = document.getElementById('changePage');
    element_1 を document.getElementById('btns').children とします。
    // コンソール.log(要素1)
    ホームページを document.getElementById('homePage') にします。
    lastpage = document.getElementById('lastPage'); とします。
    prevpage = document.getElementById('prev'); とします。
    次のページを document.getElementById('next') とします。
    enterpage = document.getElementById('enter').children[1]; とします。
    // console.log(ページを入力)
 
    //4つのボタンをバインドします。homepage.addEventListener('click', () => {
        ホームページ();
    });
    lastpage.addEventListener('クリック', () => {
        最後のページ();
    });
    prevpage.addEventListener('click', () => {
        前ページ();
    });
    nextpage.addEventListener('click', () => {
        次のページ();
    });
    enterpage.addEventListener('click',()=>{
        ページを入力します。
    })
    //デジタルボタンをバインドする for (let i=0; i<10; i++){
        element_1[i].addEventListener('クリック',()=>{
            document.getElementsByClassName('now')[0].classList.remove('now');
            document.getElementById('btns').children[i].classList.add('now');
            数値 = i+1;
        })
    }
 
    //親バブル関数をリッスンし、コンテンツ領域のテキストを制御し、ボタンのステータスを設定します btns.addEventListener('click', () => {
        // コンソール.log(数値)
 
        (数値 === 1)の場合{
            ホームページが無効 = true;
            前ページを無効に = true;
            最終ページが無効 = false;
            次ページが無効です = false;
        }それ以外の場合 (NUM > 1 && NUM < 10 ) {
            ホームページが無効 = false;
            prevpage.disabled = false;
            最終ページが無効 = false;
            次ページが無効です = false;
        }それ以外{
            ホームページが無効 = false;
            前ページを無効にしました = false;
            最終ページが無効 = true;
            次ページを無効にします。
        }
        document.getElementById('enter').children[2].innerText = NUM​​;
        document.getElementById('word').innerText = 'これで ' + NUM + ' 要素になりました';
    });
}
 
//特定の関数の実装 function homePage() {
    document.getElementsByClassName('now')[0].classList.remove('now');
    document.getElementById('btns').children[0].classList.add('now');
    数値 = 1;   
}
 
関数 lastPage() {
    document.getElementsByClassName('now')[0].classList.remove('now');
    document.getElementById('btns').children[9].classList.add('now');
    数値 = 10;
}
 
関数 nextPage(){
    document.getElementsByClassName('now')[0].classList.remove('now');
    document.getElementById('btns').children[NUM].classList.add('now');
    数値++;
}
 
関数 prevPage(){
    document.getElementsByClassName('now')[0].classList.remove('now');
    document.getElementById('btns').children[NUM-2].classList.add('now');
    数字--;
}
 
//入力関数の実装 function enterPage(){
    document.getElementsByClassName('now')[0].classList.remove('now');
    var page_number = parseInt(document.getElementById('enter').children[0].value);
    // console.log(ページ番号);
    document.getElementById("btns").children[page_number-1].classList.add('now');
    NUM=ページ番号;
}
 
window.onload = changepage();

最終的な実装は次のようになります

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

以下もご興味があるかもしれません:
  • クールなページング効果を実現するネイティブJS
  • ページング効果を実現するネイティブ js
  • ページング効果を実現するためのネイティブJavaScript
  • ネイティブ JS ページング表示効果 (効果を確認するにはページングをクリックします)
  • ネイティブ JS に基づくページング効果を実装するためのサンプル コード

<<:  LinuxでTomcatのポート番号を変更する方法

>>:  Linux リモートログイン実装チュートリアル分析

推薦する

Win7 で IIS7 Web および FTP サービスを完全にアンインストールする方法

昨日、パソコンにPHP開発環境をセットアップした後、Apacheサーバーを再起動するとエラーが続きま...

nginx で正規表現を使用してワイルドカードドメイン名を自動的に一致させる方法

Nginxは正規表現を使用して、ワイルドカードドメイン名をディレクトリに自動的に一致させます。 Ng...

ネガティブマージン関数の紹介と使用方法の概要

1998 年の CSS2 勧告の時点で、テーブルは徐々に舞台から消え、歴史の中に記録されるようになり...

Vueの監視プロパティの詳細

目次1.watchは一般的なデータ(数値、文字列、ブール値)の変更を監視します。 1. 数値2. 文...

MYSQLの文字セット設定方法(端末の文字セット)の詳しい説明

序文ターミナルを使用してデータベースまたはテーブルを作成するたびに、文字セットが latin1 であ...

MySQL の一般的なログの概要

序文: MySQL システムには、さまざまな種類のログが存在します。さまざまなログにはそれぞれ独自の...

CentOS 6.8 での Hadoop 3.1.1 完全分散インストール ガイド (推奨)

上記:このドキュメントは、3 台の仮想マシンが相互に ping を実行できること、ファイアウォールが...

JavaScript で右クリック メニューを統合する layim のサンプル コード

目次1. 効果の実証2. 実装チュートリアル3. 最後に、完全なコードを添付します4. その他の右ク...

フロントエンド開発者のための HTML 入門

1 HTML入門1.1 初めてのコード体験、最初のウェブページの作成XML/HTML コードコンテン...

表の境界線の CSS 構文

<br />表の境界線の CSS 構文具体的な内容には、上境界線の幅、右境界線の幅、下境...

Dockerを使用してRedisクラスターを構築する方法

目次1. Redis Dockerベースイメージを作成する2. Redisノードイメージを作成する3...

Vueのドラッグスクリーンショット機能を実装する簡単な方法

マウスをドラッグしてページのスクリーンショットを撮ります(指定した領域にスクリーンショットをドラッグ...

Ubuntu 20.04 CUDA & cuDNN のインストール方法 (グラフィカル チュートリアル)

CUDA インストール cuda をダウンロードサポートされているcudaバージョンを表示するには...

Promise カプセル化 wx.request メソッド

前回の記事では、Promise を使用して小さなプログラム wx.request をカプセル化する実...

MySQL トリガー: 複数のトリガー操作の作成例の分析

この記事では、例を使用して、MySQL で複数のトリガー操作を作成する方法について説明します。ご参考...