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

时间:2013-11-26 22:15:14

标签: javascript jquery html image next

有没有办法使用jQuery的next / prev按钮切换图像?这是代码:

<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中的递增和递减数字就足够了,但我不能想出合适的代码。谷歌也没有帮助。

5 个答案:

答案 0 :(得分:1)

删除类thumbnail的锚点,并为<img>类提供相应的thumbnail标记,然后对缩略图类使用jQuery click方法:

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

确保.fullimage div中有一个#fullimage

这与下一个/上一个按钮不同 - 但它会修复你所做的JSFiddle。

http://jsfiddle.net/x5mCR/34/

答案 1 :(得分:1)

如果有人在阅读这篇文章时想要使用不同的方法仍然使用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>

答案 2 :(得分:1)

这是一个动态简单的脚本,可以减少你的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');

});

答案 3 :(得分:0)

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");
});

答案 4 :(得分:0)

如果我理解正确,你试图使用箭头键在图片之间来回移动......所以如果是这种情况,我建议你看一下这篇文章:Binding arrow keys in JS/jQuery < / p>

另外,为了您的方便,我只是从该帖子中获取代码并将其与您的小提琴中的功能结合起来得到这个:

$(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;
}

});

在测试中它看起来可能需要一些修改,而且,显然需要在按下后退按钮时创建一个类似的功能,但我认为如果我正确理解你的问题这是一个很好的开始的地方。