はじめに

こんにちは、北陸のwebコーダーdaimaです。
本日は、ECサイトやコーポレートサイト、
ポートフォリオサイトのアイキャッチにぴったりな
レスポンシブ対応jQueryスライダーの設置法を、
サイト制作初心者の方にも分かりやすいように
順を追ってご説明します。
このスライダーは、slick.jsという
jQueryプラグインを用いて実装されており、
主に次のような特徴を持っています。
- 主要ブラウザ(Chrome、Firefox、IE、safari)に対応
- スライド速度や切り替えタイミングをミリ秒単位で調整可能
- ページ送り機能付き
- 現在のスライド枚数を表示するポインタ付き
- レスポンシブ対応で、ウィンドウ幅によるオプション切り替えも可能。
- 拡張性、保守性が高く、コールバックやアクションが豊富。
ページ送りやポインタは、
お好みでON/OFFすることも簡単です。
それでは早速、実装法を見ていきましょう
slickスライダーの実装法
slick.jsをダウンロードする
まずは、今回使用する
jQueryプラグイン、slick.jsを
ダウンロードします。
私はこれまで案件でbxSliderやsliderProなど
様々なスライダープラグインを利用してきましたが、
柔軟性、拡張性、扱いやすさなどを総合すると
このslick.jsが最もおすすめの
スライダープラグインであると考えています。
slickを入手するには、
まず上記リンクからslick.js公式サイトへ飛んで、
上部メニュー内「get it now」→「Download Now」をクリックし
プラグインフォルダを入手します。
ちなみに、今回使用する
ファイルは以下の通り。
- slick.js
- slick.css
- slick-theme.css
- slick.ttf
- slick.woff
HTMLコード
プラグインをダウンロードしたら
slick.js、slick.css、slick-theme.cssを
ページ内に読み込んで、
次のようにコードを記述していきます。
<div id="main"> <div class="bl_sliderBlock"> <div class="bl_sliderBlock_slide"> <img src="[スライドさせたい画像URL]" alt="[altテキスト]"><!--←スライド表示させたい画像URLを入力します--> </div> <div class="bl_sliderBlock_slide"> <img src="[スライドさせたい画像URL]" alt="[altテキスト]"> </div> <div class="bl_sliderBlock_slide"> <img src="[スライドさせたい画像URL]" alt="[altテキスト]"> </div> <div class="bl_sliderBlock_slide"> <img src="[スライドさせたい画像URL]" alt="[altテキスト]"> </div> </div> </div>
.bl_sliderBlockがスライダー全体、
.bl_sliderBlock_slideが各スライドとなります。
[スライドさせたい画像URL]には
スライドさせたい画像のURLを、
[altテキスト]には、画像が表示されなかった場合に
表示する代替文をそれぞれ入力してください。
CSSコード
.bl_sliderBlock{
margin-left: auto;
margin-right: auto;
margin-bottom: 40px;
}
.el_menuSliderCounter{
padding: 10px 0 0;
text-align: center;
font-size: 18px;
letter-spacing: 0.2em;
}
.slick-initialized .slick-slide{
position: relative;
}
.bl_sliderBlock_slide > img{
width: 100%;
max-width: 790px;
}
/*スライダー送り矢印のCSS*/
.slider-arrow{
position: absolute;
cursor: pointer;
z-index: 1;
top: calc(50%);
transform: translateY(-50%);
}
.slider-arrow.slider-prev{
left: calc((100% - 800px)/2 - 30px);
transform: translate(-100%,-50%);
}
@media screen and (max-width: 640px){
.slider-arrow.slider-prev{
transform: translate(0,-50%);
left: 20px;
}
}
.slider-arrow.slider-next{
right: calc((100% - 800px)/2 - 30px);
transform: translate(100%,-50%);
}
@media screen and (max-width: 640px){
.slider-arrow.slider-next{
transform: translate(0,-50%);
right: 20px;
}
}
.slider-arrow img{
width: 35px;
height: 50px;
}
.bl_sliderBlock_slide > imgの
max-widthは表示させたい
画像幅に合わせて任意で変更してください。
javascriptコード
sliderSet();
function sliderSet(){
var $slider = $('.bl_sliderBlock');
$slider.each(function(index){
$slider.slick({
slidesToShow: 1, //一度に表示するスライド枚数
autoplay: true, //自動スライドするか(true or false)
autoplaySpeed: 5000, //自動スライド速度(ミリ秒単位)
pauseOnFocus: false, //スライドクリック時に停止するか(true or false)
draggable: false,//ドラッグでスライダーを動かせるか(true or false)
speed: 800,//ページ送りの速度(ミリ秒単位)
centerMode: true,//表示中の画像を中おい配置するか(true or false)
pauseOnHover:false,//マウスオーバー時にスライドを止めるか(true or false)
dots: true,//現在の表示を示すポインタを表示するか(true or false)
arrows: true,//ページ送りの矢印を表示するか(true or false)
fade: false,//スライドの仕方をフェードインアウトにするか(true or false)
variableWidth: true,//スライダー内の画像サイズを本来の画像サイズにするか(true or false)
prevArrow: '<div class="slider-arrow slider-prev"><img src="[一つ戻るボタン矢印の画像URL]"></div>',//ひとつ前に戻るボタンのHTML
nextArrow: '<div class="slider-arrow slider-next"><img src="[一つ進むボタン矢印の画像URL]"></div>',//ひとつ進むボタンのHTML
responsive: [
{
breakpoint: 640,//ウィンドウサイズ640px以下の場合は以下の設定を適用
settings: {
centerPadding: '0',
centerMode: false,
variableWidth: false,
}
}
],
});
});
}
slickには様々なオプションが存在し、
数あるスライダープラグインの中でも
抜群の柔軟性を誇っています。
スライダーの速度や切り替えタイミング、
スワイプ設定などはもちろん、
豊富なメソッドとコールバック関数を駆使すれば
オートスライドの開始タイミングをずらしたり、
次のスライドまでの時間をタイマー形式で
表示することもできたりします。
ちなみに、進む/戻るボタンのHTMLも
ここでタグを指定して生成しています。
[一つ戻るボタン矢印の画像URL]と
[一つ進むボタン矢印の画像URL]部分には、
それぞれ任意のURLに書き換えてご利用ください。
おわりに
スライダーの実装、上手く行きましたでしょうか?
いまやリッチなウェブ表現に欠かせないスライダーですが、
その奥は深く、凝ったものを作ろうと思うと一気に難易度が上がる、
サイト制作社泣かせのギミックだったりします(笑)
これをご覧の皆さんも、
javascriptに慣れたらぜひ、
さらにテクニカルなスライダーの
実装に挑戦してみてください。
それでは!


コメント