jQueryを使ったスライドイメージを作成する方法を紹介します。「.animate()」を使って作るシンプルなスライドの画像切り替えとなっています。
スライドイメージの作り方
まずは、スライドさせたい画像と切り替え用のボタンをマークアップしておきます。
<div id="slide-wrap">
<div id="slide">
<div class="slide-img">
<img src="photo1.jpg" />
<img src="photo2.jpg" />
<img src="photo3.jpg" />
</div>
</div>
<ul class="slide-btn">
<li class="next"><</li>
<li class="prev">></li>
</ul>
</div>
続いて、CSSでスライドさせるエリアなどを整えていきます。
#slide-wrap {
width: 250px;
height: 187px;
margin: 0 auto;
position: relative;
}
#slide {
overflow: hidden;
}
.slide-img {
width: 750px;
}
.slide-img img {
display: block;
float: left;
width: 250px;
}
まず、一番外側のボックスに画像を表示させたい幅などを指定します。そして、画像を囲っているボックスに画像の枚数分だけ幅を指定して、それを囲むボックスに対して「overflow: hidden;」を指定することで、表示領域以外は非表示になるようにしています。
今度は、jQueryを使って実際にスライドするアニメーションを作っていきます。
$(function() {
var $slideImg = $(".slide-img");
$(".slide-img img:last").prependTo($slideImg);
$slideImg.css("margin-left","-250px");
$(".next").click(function() {
$slideImg.animate({
"margin-left" : parseInt($slideImg.css("margin-left"))-250+"px"
},
function() {
$slideImg.css("margin-left","-250px");
$(".slide-img img:first").appendTo($slideImg);
});
});
$(".prev").click(function() {
$slideImg.animate({
"margin-left" : parseInt($slideImg.css("margin-left"))+250+"px"
},
function() {
$slideImg.css("margin-left","-250px");
$(".slide-img img:last").prependTo($slideImg);
});
});
});
2行目の「.prependTo()」で最後のimg要素を「.slide-img」の先頭に移動させています。それを「.css()」で-250pxずらして、1枚目の画像が表示されるようにしています。
アニメーション部分にある「parseInt()」は、指定した文字列を数値に変換する命令で、この場合だと「.slide-img」の「margin-left」を常に250px足したり引いたりしています。
以上が、jQueryを使ったシンプルなスライドイメージの作り方となります。