ページネーションコンポーネントはWeb開発でよく使われるコンポーネントです。ページネーション機能を実装し、id jsPaginationを持つDOM要素にページネーション表示部分を完成させてください。要件は次のとおりです。 1. 最大 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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL 8.0.17 のインストールと使用方法のチュートリアル図
>>: ウェブサイトの高速化における CDN、SCDN、DCDN の違いは何ですか?どうやって選ぶ?
この記事では、CSS3 を使用した Web サイトの商品表示の効果を紹介し、皆さんと共有します。詳細...
nginx をリバース プロキシとして使用する場合、リクエストをそのまま次のサービスに転送するだけで...
シームレス カルーセルは非常に一般的なエフェクトであり、ロジックを理解すれば非常に簡単です。効果は以...
nofollowをめぐる論争Zac と Guoping の間では、nofollow が PR を無駄...
MySQL で、id、a、b の 3 つのフィールドを持つ新しいテーブルを作成します。次のように、同...
導入Binlog ログ、つまりバイナリ ログ ファイルは、データベースに対するユーザー操作の SQL...
目次ナンセンス実装された機能文章要点ナンセンスデモプレビュー実装された機能デフォルトでホームページが...
MySql は常に MySQLInstallerConsole.exe ウィンドウを定期的にポップア...
序文最近mysql /usr/local/mysql/bin/mysql -uroot -pパスワー...
スクリプトを書く目的は、さまざまなサービスを手動で起動しなくて済むようにすることです(怠惰のためでも...
1. インデックスの役割一般的に言えば、インデックスは本の目次に相当します。条件に基づいてクエリを実...
とあるサイトからレンタルした仮想マシンの有効期限が近づいており、更新料が200元以上かかります。Al...
今では、自宅のソファーに座っていても、外の喫茶店にいても、ノートパソコンの電源を入れてWi-Fiに接...
背景一時テーブルスペースは、データベースのソート操作を管理し、一時テーブルや中間ソート結果などの一時...
序文group by と distinctive のパフォーマンス比較について: インターネット上の...