ファンブログにスライドショーを設置する
投稿日 : 2018.07.03
はじめに
ブログにスライドショー(カルーセルやスライダーと呼ばれたりする)を設置したいことがあると思いますが、今回は ファンブログで、そのスライドショーを作成する方法 をご説明します。
使用するプラグインは「 slick.js 」です。とても簡単にスライドショーが作れるプラグインです。レスポンシブ対応の設定も簡単で評価が高いです。
このslick.jsを 「 jsDelivr 」から読み込んで使用 します。
また、slick.jsは jQueryプラグインなのでjQueryを先に読み込んでおく 必要がありますが、その手順は 以前の記事 に説明がありますので、そちらを参考にしてみてください。
1.jsDelivrからslickを読み込むHTMLを取得してテンプレートに追加する
まずは、jsDelivrのサイトに行きます。
検索フォームに 「slick」と入力して検索 します。
フォームの下に検索結果がリストアップされるので、「slick-carousel」という名前の項目を探してタイトルをクリックします。
slickのページが表示されたら、トグルボタンが見えるか確認してください。ウィンドウサイズによってはトグルボタンが隠れてしまっていることがあります。
ファイルを選択するのにトグルボタンが必要 なので、見えない場合は、水平スクロールバーで表示させてください。
「slick」をクリックして、 目的のディレクトリを展開 します。
目的のディレクトリが展開されたら、 ブログで読み込みたいファイルを選択 します。
「slick.css」「slick.min.js」「slick-theme.css」の3つを読み込みたい ので、それぞれのトグルボタンをクリックしてオンにしてください。
slickで使用されるローダー画像やフォントファイルは、slick-theme.cssから自動で読み込まれるように指定されているので、選択する必要はありません。
ファイルを選択すると、「Selected files」と書かれているリストに追加されます。
「SHOW & CONFIGURE ALL LINKS」というボタンをクリック して、HTMLを表示するページに移動します。
選択したファイルのページが表示されたら、上部にある 「HTML output」を選択 してください。これを選択しないとHTML表記にならずに単なるURLが表示された状態のままになります。
任意で「Auto-optimaization」を選択 してください。これは、ファイルの軽量化のために未圧縮ファイルをjsDelivrが圧縮してくれる機能です。
圧縮とは、ファイル内のスペースや改行を取り除いたり、同じ種類のファイルであれば統合して1つのファイルにまとめたりといった処理のことです。必須ではありませんが、選択しておくといいと思います。
選択したファイルがHTML表記になったことを確認したら 「COPY ALL」というボタンをクリックして、そのHTMLをクリップボードにコピー します。
ファンブログのHTML編集画面が別タブなどに表示されているのであれば、そのままペーストして追加してもいいと思いますが、そうでないなら、 一時的にテキストファイルを作成してコピペして控えておく といいです。
「COPY ALL」すると、その同じ種類のファイルのHTMLが一度にコピーされるので、一つ一つコピペするより便利です。
ファンブログのHTML編集画面に戻って、先ほど控えておいたHTMLをコピペして追加します。
「slick.min.js」の追加場所は、jQueryの読み込みの後 です。まだjQueryの読み込み指定を行っていないのであれば、 こちらの記事 を参考にして追加してください。作業内容はここで説明していることとほぼ同じで、jsDelivrからjQueryの読み込みHTMLを取得してコピペしているだけです。
スタイルシート(拡張子が.css)の読み込みはjQueryの前でも大丈夫です。
HTMLを追加したら、 「保存」ボタンをクリックして編集内容を保存 してください。
2.slickでスライドショーを作成する
必要な3つの作業
スライドショーを作成するには次の3つの作業を行います。
- HTMLでスライドショーの構成を記述する
- jQueryとslickでスライドショーとして動作させる
- スタイルシートで幅などのスタイルを指定する
2−1.HTMLでスライドショーの構成を記述する
まずは、 スライドショーの枠組みをHTMLで作成 します。とても簡単に記述できます。
基本的には、次のような構成になります。
各スライドをラッパーで囲んでいるだけ です。ラッパーにはjQueryなどから識別するための IDやクラス名 をつけておきます。
ポイントは、 <ul>や<ol>などのリストではなく、汎用タグの<div>を使用している ところです。
slickでは、スライドショーを作成するときに、ラッパーと各スライドの間に、div要素が2つ追加される仕様になっています。
なので例えば<ul>タグで記述すると、次のような形になってしまいます。
HTML5では、<ul>や<ol>の子要素に<div>は認められていない ようです。 こちらのサイト でHTML5の親要素と子要素の対応関係が調べられます。
なので、 リストではなく汎用タグで記述する といいと思います。
2−2.jQueryとslickでスライドショーとして動作させる
HTMLで記述した要素をスライドショーに変身させるには、そのためのスクリプトを記述します。
最低限スライドショーとして動作させるためには、次のように記述します。
「#slideshow」は、先ほど作成したHTMLに記述したラッパー要素のIDを示しています。クラス名をつけた場合は、そのクラス名を指定してください。
slickでは、 デフォルトで「前のスライドボタン」や「次のスライドボタン」が表示される ようになっています。見えない場合は、スタイルシートで調整すると見えたりするので後で説明します。
この設定では、自動でスライドを切り替えたり、ドットで表示されるスライドナビゲーション(ページングのように、表示したいスライドに対応したドットをクリックして切り替える)の表示はしません。
自動でスライドを切り替えたり、ドットナビを表示する には次のように記述します。
「autoplay」オプションに「true」を指定すると、スライドが自動で切り替わります。
「dots」オプションに「true」を指定すると、ドットナビが表示されます。
また、デフォルトでは横にスライドして切り替わりますが、 じわっとフェードして切り替わるようにする には、次のように記述します。
「fade」オプションを追加しています。「true」を指定するとフェードして切り替わります。
上記のスクリプトを参考にするか、そのままコピペして、 javascriptファイルを作成 してください。拡張子は「.js」で保存します。HTMLに直接記述する方法もあります。
作成したjavascriptファイルをファンブログにアップして、外部ファイルとして読み込む とスライドショーとして動作すると思います。
アップして読み込む手順は、 こちらの記事 で説明しているので、参考にしてみてください。
2−3.スタイルシートで幅などのスタイルを指定する
HTMLを記述して、JavaScriptでスライドショーとして動作させれば、最低限のスライドショーは完成しています。
ただ、表示に少し問題があるかもしれません。
「前のスライドボタン」や「次のスライドボタン」が見えていなかったり、ドットナビの表示位置がおかしかったりすることがあります。
このようなときは、 スタイルシートで正しく表示されるように調整 します。
「前のスライドボタン」や「次のスライドボタン」が見えない場合は、スライドショーの幅が表示領域いっぱいになっていて、 ナビボタンがその外側に表示されていて見えない ことがあります。
このような場合は、ラッパー要素の幅を調整することで表示できます。
また、 デフォルトでナビボタンの前景色が白なので、ページの背景が白いと見えない です。
次のように指定するとナビの色を変えられます。
#slideshow .slick-prev:before, #slideshow .slick-next:before { color: lightgray; }
「.slick-prev」や「.slick-next」の「before疑似要素」に「←」や「→」の文字が指定されていて、slickが独自のフォントを使って、その文字の見た目をボタンのように変えています。色は背景ではなく文字についています。
なので、 「before疑似要素」の背景色ではなく前景色を変えてあげることで、ナビボタンの色を変えられます 。スタイルシートでは「color」プロパティです。
また、ドットナビの表示位置がおかしいことがありますが、これは、ドットナビは「ul」要素で記述される仕様になっているのですが、ページのスタイルで「ul」要素の位置やマージンなどを指定していると表示がおかしくなったりすることがあるようです。
なので、表示がおかしい場合は、 スライドショー内の「ul」要素や「li」要素のスタイル指定を確認 してみるといいと思います。