2016-03-01 32 views
0

我想在2000ms后自动更改图像。图像应淡入JQuery:如何在淡入淡出后更改图像?

我的HTML:

<div class="nile-slider large-12 column"> 
    <img alt="landing page 3" src="assets/Startseite/Slider/Slider_2.jpg"> 
</div> 

我的JS:

// change header image after 2 seconds 
var images = ['Slider_1.jpg','Slider_2.jpg','Slider_3.jpg', 'Slider_4.jpg'], 
    index = 0, // starting index 
    maxImages = images.length - 1; 
var timer = setInterval(function() { 
    var currentImage = images[index]; 
    index = (index == maxImages) ? 0 : ++index; 
    $('.nile-slider img').attr('src','assets/Startseite/Slider/'+currentImage).fadeIn('slow'); 
}, 2000); 

这段代码的图像的变化,但它不褪色的我怎么能强迫图像淡入(甚至淡出)?

+1

'.attr'将设置属性为所有匹配的元素...'$(”尼罗河滑块。 img')'应该返回'不可见'元素来获得'fadeIn'效果。 – Rayon

回答

2

您可以结合fadeOutfadeIn()使用fadeOut回调函数来实现这一点。

// change header image after 2 seconds 
var images = ['Slider_1.jpg','Slider_2.jpg','Slider_3.jpg', 'Slider_4.jpg'], 
    index = 0, // starting index 
    maxImages = images.length - 1; 
var timer = setInterval(function() { 
    var currentImage = images[index]; 
    index = (index == maxImages) ? 0 : ++index; 
    $('.nile-slider img').fadeOut(200, function() { 
     $('.nile-slider img').attr("src", 'assets/Startseite/Slider/'+currentImage); 
     $('.nile-slider img').fadeIn(200); 
    }); 
}, 2000); 
+0

谢谢,它的工作原理! – StandardNerd

1

提供了新的来源为fadeOut回调可以做的伎俩:

$('.nile-slider img') 
    .fadeOut('fast', 
      function() { 
       $('.nile-slider img') 
       .attr('src','assets/Startseite/Slider/'+currentImage) 
       .fadeIn('slow'); 
      } 
); 
+0

真棒Kooilnc! – StandardNerd