jQuery Web制作

【jQuery】もっと見るボタンクリックで指定した件数ずつ表示させる方法【サンプル付きで解説】

※ 当サイトではアフィリエイト広告を利用しています

リストでもっと見るボタンをクリックしたら5件ずつ表示とか出来る?

例えばリストが18件あったとします。

そして以下のようにしたいと思います。

  1. リストが初期状態で5件表示
  2. もっと見るボタンをクリックしたら5件ずつ表示
  3. 18件全部表示されたら、もっと見るボタンが閉じるボタンに変化
  4. 閉じるボタンをクリックしたら初期状態の5件表示に戻り、ボタンはもっと見るボタンに変化

 

完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
  • 30日間でWeb制作を学べる
  • 完全無料
  • 現役エンジニアへの質問無制限
  • オンラインの動画学習なので時間場所を問わず勉強可能
  • 最大4回の学習サポート面談
  • 受付は1日25名までの先着制
無料なのに専属のメンターが付き、現役エンジニアへの質問も無制限という破格のサービスです。
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇

\ 完全無料 /

ZeroPlus Gate公式サイト

先着1日25名まで!

jQueryを使ってもっと見るボタンクリックで指定した件数ずつ表示させる方法

今回はjQueryを使うので、jQuery本体の読み込みを忘れないようにしましょう。

jQueryを使ったことがない人はこちらの記事を参照下さい。

あわせて読みたい
【初心者向け】jQueryとは?CDNを使った本体の読み込み方についても分かりやすく解説
【初心者向け】jQueryとは?CDNを使った本体の読み込み方も分かりやすく解説

続きを見る

まずは冒頭で書いたような状態になるように書いたサンプルをご覧ください。

See the Pen
もっと見るボタン(5件ずつ表示)
by junpei (@junpei-sugiyama)
on CodePen.

 

コード解説

コードの解説をします。まずHTMLはこちら。

<div class="js-accordion">
  <ul>
    <li>チワワ</li>
    <li>トイプードル</li>
    <li>ミニチュアダックス</li>
    <li>柴犬</li>
    <li>シーズー</li>
    <li>ポメラニアン</li>
    <li>ゴールデンレトリバー</li>
    <li>ラブラドールレトリバー</li>
    <li>パピヨン</li>
    <li>ペキニーズ</li>
    <li>ビーグル</li>
    <li>パグ</li>
    <li>フレンチブルドッグ</li>
    <li>コーギー</li>
    <li>ボーダーコリー</li>
    <li>シェルティー</li>
    <li>グレートデン</li>
  </ul>
  <div class="btn js-btn-more">もっと見る</div>
  <div class="btn js-btn-close">閉じる</div>
</div>

ボタンのclass="btn"はレイアウトの為のclassなので必須ではありません。

『ulタグ』『もっと見るボタン』『閉じるボタンを囲うdivタグ』という構成です。

liタグは増減しても問題ありません。

CSSはレイアウトの調整しかしていないので割愛します。

そしてjQueryがこちらです。

$(function () {
  // liの数を取得
  const listItems = $(".js-accordion li").length;
  $(".js-accordion").each(function () {
    // 最初に表示させるliの数
    let num = 5,
      // 閉じた時に表示させるliの数
      closeNum = num - 1;
    // 最初はもっと見るボタン表示、閉じるボタン非表示
    $(this).find(".js-btn-more").show();
    $(this).find(".js-btn-close").hide();
    // 5行目まで表示
    $(this)
      .find("li:not(:lt(" + num + "))")
      .hide();
    // もっと見るボタンがクリックされた時
    $(".js-btn-more").click(function () {
      // numに+5ずつしていく = 5行ずつ追加する
      num += 5;
      $(this)
        .parent()
        .find("li:lt(" + num + ")")
        .slideDown();
      // liの数よりnumが多い時、
      if (listItems <= num) {
        // もっと見るボタン非表示
        $(".js-btn-more").hide();
        // 閉じるボタン表示
        $(".js-btn-close").show();
        // 閉じるボタンがクリックされたら、
        $(".js-btn-close").click(function () {
          $(this)
            .parent()
            .find("li:gt(" + closeNum + ")")
            // 6行目以降は非表示
            .slideUp();
          // 閉じるボタンを非表示
          $(this).hide();
          // もっと見るボタン表示に
          $(".js-btn-more").show();
        });
      }
    });
  });
});

class名は自分の環境に合わせて変更して下さい。

あとは数字を変える事で以下の数を変更する事が出来ます。

  • 初期表示の数
  • もっと見るボタンで表示する数
  • 閉じた後の表示数

試しに以下の条件で実装してみたいと思います。

  • 初期表示は6件
  • もっと見るボタンクリックで4件ずつ表示
  • 閉じるボタンクリックで5件表示

そしてこちらがサンプルになります。

See the Pen
Untitled
by junpei (@junpei-sugiyama)
on CodePen.

以上になります。

あわせて読みたい
【jQuery】続きを読むボタンクリックで要素を開く方法【閉じるボタンあり】
【jQuery】続きを読むボタンクリックで要素を開く方法【閉じるボタンあり】

続きを見る

この記事が役に立ったと思ったら、シェアボタンからX(旧Twitter)などにシェアすると、いいねされてフォロワーが増えたりすることがあるよ!
Web制作おすすめ教材と案件獲得サービス
当ブログではWeb制作学習におすすめの教材を厳選してご紹介しています。
こちらの記事を参考に教材を購入して成果を出している人もたくさんいるので、自分に必要な教材を探してみて下さい。
また、学習面だけでなく営業面である案件獲得サービスもご紹介しています。
スキルが身についても仕事がなければ意味がないので、営業に不安がある人はこちらの記事をぜひ参考にしてみて下さい。
この記事を参考にスキルと営業力を身につけて稼げるようになりましょう!

-jQuery, Web制作