jquery 使用下一个/上一个按钮切换图像

hivapdat  于 2023-06-22  发布在  jQuery
关注(0)|答案(5)|浏览(135)

有没有办法在jQuery中使用下一个/上一个按钮来切换图像?代码如下:

<div class="prevDiv">
    <a href="#"><img src="images/prev.png" alt="previous" /></a>
</div>
<div class="pic" id="picwebd">
    <img src="images/portfolio/webdesign/webd1.jpg" class="portPic" />
</div>
<div class="nextDiv">
    <a href="#"><img src="images/next.png" alt="previous" /></a>
</div>

我试着修改这段代码来满足我的需要:http://jsfiddle.net/x5mCR/16/但我没有成功。我认为在图像src中递增和递减数字就足够了,但我不能拿出像样的代码来做这件事。Google也帮不上忙。

shyt4zoc

shyt4zoc1#

如果任何人阅读这篇文章想要一个不同的方法仍然使用jQuery fadeIn,我张贴下面的代码。
Here你可以找到它的小提琴。
这里是JavaScript部分

//At the start will show the first image
$('#fullimage img.fullimage:first-child').fadeIn();
//Keep track of the image currently being visualized
var curr = $('#fullimage img.fullimage:first-child');

$('#next').on('click', function() {
    //Hide Current Image
    curr.hide();
    //Find Next Image
    var next = curr.next();
    //If theres no next image (is the last img), go back to first
    if (next.length == 0) next = $('#fullimage img:first');
    //Fade In
    next.fadeIn();
    //Save in curr the current Image
    curr = next;
    return false;
});

$('#prev').on('click', function() {
    curr.hide();
    var prev = curr.prev();
    if (prev.length == 0) prev = $('#fullimage img:last');
    prev.fadeIn();
    curr = prev;
    return false;
});

这是HTML部分

<div id="fullimage">
 <img class="fullimage" src="http://i.imgur.com/RHhXG.jpg" />
 <img class="fullimage" src="http://i.imgur.com/p1L2e.jpg" />
 <img class="fullimage" src="http://i.imgur.com/NsrI0.jpg" />
 <img class="fullimage" src="http://i.imgur.com/Ww6EU.jpg" /> 
</div>
<a href="#"><label id="prev">previous</label></a>
<a href="#"><label id="next">next</label></a>
6kkfgxo0

6kkfgxo02#

这里是动态和简单的脚本减少您的html代码
http://jsfiddle.net/x5mCR/32/

$("#thumbnail a").on('click', function (eve) {
    eve.preventDefault();
    var link = ($(this).attr("href"));
    var content = '<img src="' + link + '"/>';
    $("#fullimage").hide().html(content).fadeIn('slow');

});
guz6ccqo

guz6ccqo3#

删除带有类thumbnail的锚点,并将相应的<img>标签赋予thumbnail类,然后对thumbnail类使用jQuery click方法:

$(".thumbnail").click(function() {
    $(".fullimage").src = $(this).attr("src");
});

确保在#fullimage div中有一个.fullimage
这与下一个/上一个按钮不同--但它可以修复您创建的JSFiddle。
http://jsfiddle.net/x5mCR/34/

gzjq41n4

gzjq41n44#

var picNumber = 1;

$(".nextDiv").click(function() {
    picNumber++;
    if (picNumber > 3) picNumber = 1; // Change 3 to how many pictures there are.
    $(".pic img").attr("src", "images/portfolio/webdesign/webd" + picNumber + ".jpg");
});
$(".prevDiv").click(function() {
    picNumber--;
    if (picNumber < 1) picNumber = 3; // Change 3 to how many pictures there are.
    $(".pic img").attr("src", "images/portfolio/webdesign/webd" + picNumber + ".jpg");
});
yptwkmov

yptwkmov5#

如果我理解正确的话,你正在尝试使用箭头键在图片之间来回移动......所以如果是这样的话,我建议你看看这篇文章:Binding arrow keys in JS/jQuery
另外,为了方便起见,我只是从那篇文章中提取了代码,并将其与您的fiddle中的函数结合起来,得到了以下内容:

$(document).keydown(function (e) {
    if (e.keyCode == 39) {
    $(".fullimage").hide();
    var next = $(this).next();
    if (next.length > 0) {
        next.fadeIn();
    } else {
        $('#fullimage img:first').fadeIn();
    }
    return false;
}

});
在测试中,它看起来可能需要一些修改,而且,当按下后退按钮时,您显然需要创建一个类似的函数,但我认为如果我正确理解您的问题,这是一个很好的起点。

相关问题