jQuery を使用してカスタム コンテンツ スライダーを作成しています。実際の例については、こちらのフィドルを参照してください。この例では、2 つのスライドしかありません。緑のボタンをクリックすると、次のスライドに移動します。
これにさらにスライドを追加し、ボタンをクリックしてそれぞれにスライドさせたい(前のボタンはありません)。現在の jQuery 関数には、id
ハードコーディングされた次の div があります。スライドを追加すると、この方法は効果的ではなくなります。現在の div を検出し、次にクリックすると次の div に移動するという 1 つの関数の書き方がわかりません。どうすればこれを達成できますか?
ありがとうございました。
以下にコードを掲載しました。
HTML
<div id="main-slider-space">
<div class="slider-wrapper">
<div id="slide1" class="main-slide">
</div><!-- end of slide1 -->
<div id="slide2" class="main-slide">
</div><!-- end of slide2 -->
</div> <!-- end of slider-wrapper -->
</div><!-- end of main-slider-space -->
<div id="main-slider-next" class="slider-buttons"><a class="active" href="#"></a></div>
CSS
#main-slider-space {
overflow:hidden;
width:600px;
height:300px;
background-color:#C36;
margin-left:50px;
}
.slider-wrapper {
position:relative;
left:0;
width:3000px;
height:100%;
}
.main-slide {
width:600px;
height:100%;
float:left;
}
#slide1 { background-color:#5FF; }
#slide2 { background-color:#F5F; }
.slider-buttons {
position:absolute;
width:30px;
height:30px;
}
.slider-buttons:hover { cursor:pointer; }
#main-slider-next {
background-color:#99CC66;
right:30px;
top:50%;
}
jQuery
function goto(id, t){
$(".slider-wrapper").animate({"left": -($(id).position().left)}, 600);
}
$(document).ready(function(e) {
$('#main-slider-next').click(function(e) {
e.preventDefault();
goto('#slide2', this);
return false;
});
});