我正在尝试使用prev和next按钮创建一个简单的滑块。 如果前进一步而不是后退,我不会总是得到前一张图片。 我注意到next和prev按钮不使用相同的索引,但我不知道如何修复它。
$("img").hide();
$("img").first().show();
var currentItem = $("img").first().next().index();
var lastItem = $("img").last().index();
$('#next').click(function(){
$("img").hide();
$("img").eq(currentItem).show();
if(currentItem == lastItem){
currentItem = 0;
}else{
currentItem = $("img").eq(currentItem).next().index();
}
});
var currentItem2 = $("img").last().prev().index();
$('#prev').click(function(){
$("img").hide();
$("img").eq(currentItem2).show();
if( currentItem2 == lastItem ){
currentItem2 = 2;
}else{
currentItem2 = $("img").eq(currentItem2).prev().index();
}
});
这是我的HTML代码
<div id="slider">
<img src="bilder/walle.jpg" alt=""/>
<img src="bilder/up.jpg" alt=""/>
<img src="bilder/toystory.jpg" alt=""/>
<img src="bilder/nemo.jpg"alt=""/>
<div id="next">Next</div>
<div id="prev">prev</div>
</div>
答案 0 :(得分:2)
只需修改一下Trevor的代码,就可以得到类似的东西:
var images = [];
$('#slider img').each(function () {
images.push($(this));
$(this).hide();
});
var imgcount = images.length;
var currentItem = 0;
images[currentItem].show();
$('#next').click(function () {
images[currentItem].hide();
currentItem = (currentItem + 1) % imgcount;
images[currentItem].show();
});
$('#prev').click(function () {
images[currentItem].hide();
if (currentItem > 0)
currentItem--;
else
currentItem = imgcount - 1;
images[currentItem].show();
});
如果您想要添加新图像,您的代码仍然有效,并且每次单击下一个或上一个图像时都不会隐藏网页的所有图像:)
答案 1 :(得分:0)
这是一种方法:
var images = [];
$('#slider img').each(function(){
images.push($(this));
});
var imgcount = images.length;
$("img").hide();
$("img").first().show();
var currentItem = 0;
$('#next').click(function(){
$("img").hide();
currentItem++;
images[currentItem%4].show();
});
$('#prev').click(function(){
$("img").hide();
currentItem--;
if(currentItem < 0)
currentItem = imgcount-1;
images[currentItem%4].show();
});
小提琴: