【簡単】ページング機能で複数分割!jQuery「simplePagination」の使い方
- 作成日:2018/06/12
1つのWebページを複数ページに分割するページング機能の追加方法です。 ページネーションとも言いますね。ページが長い・ボリュームがある場合に便利な機能です。
一見難しそうに見えますが、ほぼコピペで使えるので導入は簡単です。 なるべく丁寧に説明していくので、ぜひ使ってみて下さい。
ページング機能のデモ
今回ご紹介するページング機能のデモです。
デモでは1つのWebページを3ページに分割していますが、 分割するページ数は自由に決められます。
simplePaginationはページ分割をするのにHTMLファイルを分割する必要はありません。 分割したい箇所をdiv要素で囲み、その要素に対してjQueryやCSSを使いページング機能を実現します。
長いページを分割すれば読み込み速度も速くなるので、ページが重いときなどにもおすすめのjQueryプラグインです。
simplePaginationのダウンロード
まずはページング機能を持つjQueryを入手しましょう。以下のURLへアクセスしてください。
このページにsimplePaginationの仕様やダウンロードリンクがあります。 Download項目にあるhereを押下するとダウンロードが開始されます。
ダウンロードしたフォルダを開くといくつかファイルが入っていますが、使うのは以下の2つです。
- jquery.simplePagination.js
- simplePagination.css
これらのファイルは後でHTMLのhead部分で読み込むので、任意の場所に配置しておいてください。
ページング機能の追加
既存のページにsimplePaginationを使いページング機能を追加するやり方を説明します。 例として以下のようなWebページがあるとします。
<h1>ホームページにページング機能を追加しよう!</h1>
<h2>事前準備</h2>
<p>準備についての文章</p>
<h2>追加方法1</h2>
<p>追加方法1についての文章</p>
<h2>追加方法2</h2>
<p>追加方法2についての文章</p>
<h2>追加方法3</h2>
<p>追加方法3についての文章</p>
h1見出しが1つとh2見出しが4つある、ごく普通のWebページです。 この1つのページをsimplePaginationを使い複数のページに分割してみます。 どこで区切っても良いのですが、ここではh2見出し毎にページを分けてみます。
さて、実際にsimplePaginationを使っていくのですが、やることは以下の3つです。
- HTMLの編集
- JavaScriptの追加
- CSSの追加
難しいことはありません。1つずつ丁寧に見ていきましょう。
HTMLの編集
ここでは既存のHTMLファイルを修正していきます。
simplePaginationを読み込む
まずは先ほどダウンロードしたファイルを読み込みます。 HTMLファイルのhead要素に以下を追加してください。
<head>
//jQuery読み込み
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> //①
//simplePagination読み込み
<script type="text/javascript" src="js/jquery.simplePagination.js"></script> //②
//CSS読み込み
<link rel= "stylesheet" href="css/simplePagination.css"> //③
</head>
ピンク色の箇所はそれぞれのファイルがあるパスなので、ファイルを配置したパスに置き換えてください。
また、simplePaginationを使うにはjQueryも一緒に読み込む必要があります(①)。jQueryはsimplePaginationより先に読み込まないとうまく動かないので、 ①を読み込んでから②を読み込むようにしてください。
今回はheadタグ内にsimplePaginationなどを読み込んでいますが、 body要素を閉じる直前とかに読みこんでもOKです。
分割するページを設定
次に、現在1つになっているWebページを複数に分割するために、先ほどのHTMLにdiv要素を追加していきます。 具体的には以下のようにします。
//1ページ目
<div class="selection" id="page-1">
<h1>ホームページにページング機能を追加しよう!</h1>
<h2>事前準備</h2>
<p>準備についての文章</p>
</div>
//2ページ目
<div class="selection" id="page-2">
<h2>追加方法1</h2>
<p>追加方法1についての文章</p>
</div>
//3ページ目
<div class="selection" id="page-3">
<h2>追加方法2</h2>
<p>追加方法2についての文章</p>
</div>
//4ページ目
<div class="selection" id="page-4">
<h2>追加方法3</h2>
<p>追加方法3についての文章</p>
</div>
ピンク色が追加した箇所です。selectionクラスとid名がついたdiv要素を追加しています。 div要素で囲まれたところが1ページとなるため、上記では4つのページに分割されます。
ページ部分の追加
次にページ部分の追加をします。デモでいうところの以下のような箇所です。
これを追加するには、ページング機能をつけたいところに以下のHTMLを追加します。
<div class="pagination-holder clearfix">
<div id="light-pagination" class="pagination"></div>
</div>
ここではページの下部につけたいので、4ページ目の下に配置します。 全文は後ほど紹介します。
以上でHTMLの編集は完了です。
JavaScriptの追加
次にJavaScriptを追加します。以下のコードをHTMLファイルに追加してください。
<script type="text/javascript">
$(function () {
$(".pagination").pagination({
items: 3,
displayedPages: 2,
prevText:"前へ",
nextText:"次へ",
cssStyle: 'light-theme',
onPageClick: function (currentPageNumber) {
showPage(currentPageNumber);
}
})
});
function showPage(currentPageNumber) {
var page = "#page-" + currentPageNumber;
$('.selection').hide();
$(page).show();
}
</script>
このJavaScriptをbody要素を閉じる直前に追加します。
CSSの追加
この時点で既にページング機能は完成しているのですが、現時点では最初のページに1~4ページ全てが表示されてしまいます。 最初に1ページ目だけを表示させるには以下のCSSを追加します。
.selection {
display: none;
}
#page-1 {
display: block;
}
これは1~4ページ目をdisplay: noneで一旦全て非表示にして、 その後、1ページ目だけをdisplay: blockで表示させています。
まとめ
HTML・CSS・JavaScriptの編集・追加をまとめて書くと以下のようになります。
<head>
//jQuery読み込み
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
//simplePagination読み込み
<script type="text/javascript" src="js/jquery.simplePagination.js"></script>
//CSS読み込み
<link rel= "stylesheet" href="css/simplePagination.css">
</head>
<body>
//1ページ目
<div class="selection" id="page-1">
<h1>ホームページにページング機能を追加しよう!</h1>
<h2>事前準備</h2>
<p>準備についての文章</p>
</div>
//2ページ目
<div class="selection" id="page-2">
<h2>追加方法1</h2>
<p>追加方法1についての文章</p>
</div>
//3ページ目
<div class="selection" id="page-3">
<h2>追加方法2</h2>
<p>追加方法2についての文章</p>
</div>
//4ページ目
<div class="selection" id="page-4">
<h2>追加方法3</h2>
<p>追加方法3についての文章</p>
</div>
//ページング追加
<div class="pagination-holder clearfix">
<div id="light-pagination" class="pagination"></div>
</div>
//JavaScript追加
<script type="text/javascript">
$(function () {
$(".pagination").pagination({
items: 3,
displayedPages: 2,
prevText:"前へ",
nextText:"次へ",
cssStyle: 'light-theme',
onPageClick: function (currentPageNumber) {
showPage(currentPageNumber);
}
})
});
function showPage(currentPageNumber) {
var page = "#page-" + currentPageNumber;
$('.selection').hide();
$(page).show();
}
</script>
</body>
.selection {
display: none;
}
#page-1 {
display: block;
}
div要素のクラス名・id名を変えると色々なところを変更しなければならないので、 できれば変更しないで使うことをお勧めします。
simplePaginationの使い方
最後に、simplePaginationの使い方の紹介です。 上記で紹介したままでも十分使えますが、simplePaginationは細かい設定の変更ができるようになっています。
ダウンロードリンクがあったサイトに仕様が書かれていますが、主に変更することが多い箇所をピックアップしてご紹介します。
simplePaginationは以下のようなJavaScriptの値を変更できます。
<script type="text/javascript">
$(function () {
$(".pagination").pagination({
items: 3,//①
displayedPages: 2,//②
prevText:"前へ",//③
nextText:"次へ",//④
cssStyle: 'light-theme',//⑤
onPageClick: function (currentPageNumber) {
showPage(currentPageNumber);
}
})
});
</script>
各項目の簡単な説明は以下となります。
- ①・・・総ページ数
- ②・・・表示するページ数
- ③・・・戻るボタンのテキスト
- ④・・・進むボタンのテキスト
- ④・・・見栄え(light-theme、dark-theme、compact-theme)の何れか
見栄えの好みとかもあると思うので、ここの値を色々と変えて試してみると面白いかと思います。 また、この他にも追加・変更できる項目があるので、必要に応じて仕様に目を通しておくと良いでしょう。