今回は【slider pro】を利用して、スライドショーの中にアイコンを入れてみます。
サンプルはブラウザ幅に応じて、スライドの比率を一定に保ち拡大・縮小します(slider-proの基本機能)。
今回のものは、スライドの右下にあるアイコンもブラウザ幅に応じて、比率を保ったまま拡大・縮小するようになっています。
<html>
<!DOCTYPE html> <meta charset="utf-8"> <title>デモ</title> <meta name="description" content=""> <meta name="keywords" content=""> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/index.css"> <linK rel="stylesheet" href="css/slider-pro.min.css"></linK> </head> <body> <!--header--> <header></header> <main> <div class="backgroundBox"> <div class="Container"> <nav class="slider-pro" id="slider-pro"> <ul class="sp-slides"> <li class="sp-slide"><img class="sp-image" src="images/slidertest/slide1.png"></li> <li class="sp-slide"><img class="sp-image" src="images/slidertest/slide2.png"></li> </ul> <div class="flame"></div> </nav> </div> </div> </main> <!--footer--> <footer> <script src="js/jquery-2.0.0.min.js"></script> <script src="js/common.js"></script> <script src="js/jquery.sliderPro.min.js"></script> </footer> </body> </html>
<ポイント>
・navタグを親要素として、slider-proを適用するためにidとclassを命名します。
・slider-proを適用するnavタグの中に、スライドショーにアイコンを入れるためのdivタグを追加します。
<css>
※index.cssの中身
* { margin: 0; padding: 0; } img { max-width: 100%; } .backgroundBox { background-color: whitesmoke; } .Container { margin: 0 10px 20px; padding-top: 10px; padding-bottom: 10px; } .flame { background-image: url(../images/slidertest/slideIcon.png); background-size: contain; background-repeat: no-repeat; width: 100%; height: 550px; position: absolute; z-index: 100; pointer-events: none; } .sp-slide { list-style: none; }
<ポイント>
・.flameが重要。
①slider-proにより、navタグにposition:relative;が適用されるため、flameタグにposition:absolute;を指定することで、divタグを左上にもってこれる。
②スライダーに使用する画像と同じ大きさにdivを定義
③divタグの背景に、スライドと同じ大きさの画像を適用する(今回でいえば、横幅800px、縦550pxで右下にアイコン入りの画像)
④z-indexにより、スライドの上にdivを持ってっくる
⑤divタグの下にスライドがあるので、スライド操作を可能にするために、pointer-events:none;を適用
<js>
$(function(){ $('#slider-pro').sliderPro({ width: 800, height: 550, loop: true, arrows: false,//左右の矢印 autoSlideSize: true, buttons: true, slideDistance:0,//スライド同士の距離 }); });
<ポイント>
・スライドに使用する画像の大きさ横800px、縦550px
slider-proの基本仕様を利用して、スライドの上にアイコン入りの画像を挿入して実現しました。もっと、スマートなやり方があるとは思いますが、ご参考にしていただければ幸いです。
以上。
ps
jsを利用すれば、もっとかっこよい書き方あるんだろうな~