2012-08-15 136 views
4

我正在使用jQuery淡入淡出图像。同时jQuery淡入淡出图像

这是我使用的代码:

$('.' + currentimage).fadeOut('slow', function() { 
    $('.' + selectedimage).fadeIn('slow'); 
}); 

这是所选择的图像开始淡入前出衰落第一图像100%是否有开始第二图像淡入时以简单的方式第一个图像已经淡出了60-70%?

编辑:所有好的答案。我认为还有一个问题。我的图像不会显示在彼此之上 - 每次只能看到1个图像。

回答

3

尝试

$('.' + currentimage).fadeOut('slow'); 
$('.' + selectedimage).delay(100).fadeIn('slow'); 
+1

最干净的做法,尽管所有当前的答案工作 – Archer 2012-08-15 15:43:38

-1

那是因为你是为​​声明那里的功能是一个回调函数被调用后,才​​完成。你应该只需要一个接一个地执行一个项目即可获得所需的效果。这并不像​​上的X%开始那么准确,但您可以调整fadeOutfadeIn时间以获得所需的效果或在fadeIn上投掷delay()

$('.' + currentimage).fadeOut('slow'); 
$('.' + selectedimage).fadeIn('slow'); 
+0

这个问题是第一个图像渐变为黑色,然后另一个图像只出现在第第一张图像已完成淡出。 – Patrick 2012-08-15 15:52:05

3

slow是600毫秒那么420将是70%

$('.' + currentimage).fadeOut('slow'); 
$('.' + selectedimage).delay(420).fadeIn(600); 
+2

我建议使用'.delay(420)'而不是'setTimeout()',因为它只是更干净,更简单的代码。 – jfriend00 2012-08-15 15:37:35

+0

@ jfriend00谢谢。 – 2012-08-15 15:41:05

+0

但现在它只是与以前的答案相同;) – Archer 2012-08-15 16:01:08

1

你可以欺骗和(使用fadeTo应用褪色的一部分,打电话给你的其他功能,然后继续。

$('.' + currentimage).fadeTo('slow', .6, function() { 
    $('.' + selectedimage).fadeIn('slow'); 
    $(this).fadeOut('slow'); 
}); 
+1

我喜欢这个,但是不是'fadeIn'和'fadeOut'同时出现,而不是'fadeIn'完成后的'fadeOut'? – 2012-08-15 15:39:13