
コンテンツを1ページずつフルスクリーンでスクロール表示することができるライブラリ、
「fullpage.js」の使い方を簡単に解説します。
目次
fullpage.jsの使い方
まずはサンプル
まずはサンプルをみてみましょう。
※フルサイズ推奨。こちらのリンクからご覧ください。
さて、実際に動かしてみるとマウススクロールで1ページずつ動くのがわかると思います。
1ページずつ画面のサイズピッタリにコンテンツを表示して、スライドのようにサイトコンテンツを表示することができるのでコンテンツのインパクトを出したり、ストーリー風に何かを伝えたり、一味違うページ制作が可能です。
必要なもの
まずは他のjsライブラリと同じく、
「fullpage.js」自体をDLもしくはCDNで読み込んでくる必要があります。
今回はCDNを使用していますので、CDN読み込みで解説を進めます。
ポイントはfullpage.jsの2系を選択することです。
3系や4系以上は有料になるのでライセンスを購入しないと利用できません。
無料で利用したい際は2系の最新「2.9.7」を使うのがいいでしょう。
※jQueryも必要になるので任意のverを利用してください。今回はサンプルで3.6.0を使用。
まずはfullpage.jsの公式サイトからfullpage.jsのCDNをコピーし、</body>前に下記のscriptを、
CSSの読み込みを<head>タグの中にペーストしましょう。
JS
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/2.9.7/vendors/scrolloverflow.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/2.9.5/jquery.fullpage.js"></script>
CSS
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/2.9.5/jquery.fullpage.css">
これらの準備ができたらHTMLのマークアップに移ります。
HTMLの記述
fullpage.jsの利用に最低限必要なHTMLの記述は下記です。
h1やimgはスライド内のコンテンツになるため任意で変更OK。
<div id="fullpage">
<div class="section">
<div class="slide slide01">
<h1>text1</h1>
</div>
</div>
<div class="section">
<div class="slide slide02">
<h2>text2</h2>
</div>
</div>
<div class="section">
<div class="slide slide03">
<div class="text-box">
<h2>text3</h2>
</div>
</div>
</div>
<div class="section">
<div class="slide layer">
<h2>text 04 text 04 text 04 text 04 text 04 text 04 text 04 </h2>
<img src="abc.jpg" alt="">
</div>
</div>
</div>
fullpage.jsでフルページにしたい部分をfullpageというid名の要素で囲い、
スライド1枚あたりをsectionクラスで囲います。その中にslideを配置し、その中に任意のコンテンツを配置します。
また、fullpage.jsを動かすためにjQueryの記述が必要ですので、下記のscriptを</body>の手前にコピペしましょう。
<script>
jQuery(function () {
jQuery('#fullpage').fullpage({
scrollOverflow:true,
});
});
</script>
これで基本的な作業はすべて終了です。
スライド風に動かすだけならこれで十分です。簡単ですね。
オプションでカスタマイズ
さて、だいたいの場合はこれだけで満足はしないと思います。
例えば要望として
あるスライドの時は横に2枚ならべて矢印で切り替えたいんよな~
画面内に収まらないコンテンツはスクロールできたほうがええわ
ページネーションつけたい
などがあると思います。
それぞれについて解説していきます。
1スライド内にさらに横スクロールで複数配置
こちらはHTMLの構造を少し書き換えるだけで実装できます。
さきほどのHTMLのsectionの中身を
<div class="section">
<div class="slide slide01"></div>
<div class="slide slide02"></div>
</div>
こうするだけで自動判別され、横にふたつのスライドが並び矢印で移動ができるようになります。
画面内に収まらないコンテンツをスクロール可能にする
こちらは既に上で記述してるのですが、script内に書いた
<script>
jQuery(function () {
jQuery('#fullpage').fullpage({
scrollOverflow:true,
});
});
</script>
この「scrollOverflow:」を「true」にすることでスクロール可能になります。
記事の一番上で紹介したcodepenでは、ページの最後のスライドが縦長の画像になっていて、それが画面内に収まらないコンテンツのためスクロールが可能になっているのがわかると思います。
長文のテキストなどを配置しても同じようにスクロールできるのでめっちゃ便利ですね。
ページネーションの実装
ひとつ上で紹介したscript内に追記するかたちで
navigation:true,
navigationPosition: 'right',
を書き足せばページネーションが右側に表示されます。
navigationPositionをleftにすることで左側への表示も可能です。
ページネーションの色はページネーションのクラスにCSSをあてれば簡単にデザイン変更可能です。
https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-5121550398608628&output=html&h=200&slotname=6664047514&adk=2267359814&adf=3607792640&pi=t.ma~as.6664047514&w=812&abgtt=6&fwrn=4&lmt=1726576847&rafmt=11&format=812×200&url=https%3A%2F%2Fweb-den.com%2Ffullpage-js&wgl=1&uach=WyJtYWNPUyIsIjE0LjYuMSIsImFybSIsIiIsIjEyOC4wLjY2MTMuMTM4IixudWxsLDAsbnVsbCwiNjQiLFtbIkNocm9taXVtIiwiMTI4LjAuNjYxMy4xMzgiXSxbIk5vdDtBPUJyYW5kIiwiMjQuMC4wLjAiXSxbIkdvb2dsZSBDaHJvbWUiLCIxMjguMC42NjEzLjEzOCJdXSwwXQ..&dt=1726576846910&bpp=1&bdt=272&idt=302&shv=r20240912&mjsv=m202409120101&ptt=9&saldr=aa&abxe=1&cookie_enabled=1&eoidce=1&prev_fmts=0x0&nras=1&correlator=378749645673&frm=20&pv=1&rplot=4&u_tz=540&u_his=3&u_h=2160&u_w=5120&u_ah=2135&u_aw=5120&u_cd=24&u_sd=1&dmc=8&adx=536&ady=7356&biw=2240&bih=1860&scr_x=0&scr_y=0&eid=44759875%2C44759926%2C44759842%2C44795921%2C95338227%2C95342338&oid=2&pvsid=1743634924251746&tmod=800253676&uas=0&nvt=1&ref=https%3A%2F%2Fwww.google.com%2F&fc=1920&brdim=190%2C79%2C190%2C79%2C5120%2C25%2C2255%2C1981%2C2255%2C1860&vis=1&rsz=%7C%7CpeEbr%7C&abl=CS&pfx=0&fu=128&bc=31&bz=1&td=1&tdf=2&psd=W251bGwsbnVsbCxudWxsLDNd&nt=1&ifi=2&uci=a!2&btvi=1&fsb=1&dtd=305
まとめ
カスタマイズが簡単にできるオプション値もたくさん用意されたfullpage.js。
今回はオプション値の紹介も簡単なものに留めましたが公式のgithubなどをのぞけばたくさんのオプション値が紹介されているので、希望のカスタマイズも簡単に実装できるかもしれません。
下記は公式のドキュメントのリンクです。
コードを0から書く(いわゆるスクラッチ)より断然ラクだし自由度高いのでみなさんもぜひ試してみてください。

