jquery照片幻灯片

时间:2010-03-05 08:16:27

标签: jquery photo slide

我有一张图片,当我悬停在它上面时,我能够查看左右箭头...当我点击箭头时,我正在使用jquery更改图像的源attr ... 所以我成功地点击箭头更改图像.. 我想要的是,我如何获得幻灯片放映的感觉...当前图片向右滑动的动画拍摄,当点击左箭头时,新图像从左侧滑入... 请帮帮我......我不想使用已有的插件...... 提前谢谢......

3 个答案:

答案 0 :(得分:2)

要做到这一点,我会有两个块,一个用于旧图像,一个用于新图像(两个都有溢出隐藏)。

起始位置:

  old - normal
  new - right margin = width of image

动画节目例如每0.05秒

  old - left margin+1
  new right margin-1

直到老人滑出去,新人已滑入。

答案 1 :(得分:0)

我建议您使用JQuery的动画功能。请查看http://api.jquery.com/animate/以获取更多信息。

答案 2 :(得分:0)

这是完成的自定义动画工作,请找到fiddle

    $('.arrowRight').on('click', function(e) {
    var currLandscape = $(this).siblings(".currImg");
    var prevLandscape = currLandscape.prevAll(".hiddenImg").first();

    var currDesc= $(".currDesc");
    var prevDesc= currDesc.prevAll(".hiddenDesc").first();

    if (prevLandscape.length == 0) {
        prevLandscape = currLandscape.siblings('.hiddenImg').last();
    }
    if (prevDesc.length == 0) {
        prevDesc= currDesc.siblings('.hiddenDesc').last();
    }

    prevLandscape.show("slide", { direction: "right" }, 400, function() {
        currLandscape.hide("slide");
    });

    currDesc.fadeOut().removeClass('currDesc').addClass('hiddenDesc');
    prevDesc.fadeIn().removeClass('hiddenDesc').addClass('currDesc');

    currLandscape.removeClass('currImg').addClass('hiddenImg');
    prevLandscape.removeClass('hiddenImg').addClass('currImg');
});


$('.arrowLeft').on('click',function(e) {
    var currLandscape = $(this).siblings(".currImg");
    var nextLandscape = currLandscape.nextAll(".hiddenImg").first();

    var currDesc= $(".currDesc");
    var nextDesc= currDesc.nextAll(".hiddenDesc").first();

    if (nextLandscape.length == 0) {
        nextLandscape = currLandscape.siblings('.hiddenImg').first();
    }
    if (nextDesc.length == 0) {
        nextDesc= currDesc.siblings('.hiddenDesc').first();
    }

    nextLandscape.show("slide", { direction: "left" }, 400, function() {
        currLandscape.hide("slide");
    });

    currDesc.fadeOut().removeClass('currDesc').addClass('hiddenDesc');
    nextDesc.fadeIn().removeClass('hiddenDesc').addClass('currDesc');

    currLandscape.removeClass('currImg').addClass('hiddenImg');
    nextLandscape.removeClass('hiddenImg').addClass('currImg');
});