1

我要做的只是淡出容器内的所有图像,将#next1的图像替换为#active,然后再次淡入所有图像。

这是我的代码:

$('.logo').fadeOut('slow', function() {
    $('#active>img').replaceWith( $('#next1>img') );
}).fadeIn('slow', function() {});

这不起作用。我发现自己看着空的#active

但是这个;

$('.logo').fadeOut('slow', function() {}).fadeIn('slow', function() {});
$('#active>img').replaceWith( $('#next1>img') );

使替换很好,但不是我想要做的动画。

我使用 chrome 和 ie 得到相同的结果。

4

2 回答 2

5

我的建议是查看 jQuery 中的 promise/done 方法。作为此处的示例,您可以执行以下操作:

$('.logo').fadeOut('slow').promise().done(function(logo) {
    $('#active>img').replaceWith($('#next1>img'));
    $(logo).fadeIn('slow');
});

jQuery 承诺 - http://api.jquery.com/promise/

于 2011-10-24T01:31:54.840 回答
1

尝试:

$('.logo').fadeOut('slow', function() {
    $('#active>img').replaceWith( $('#next1>img') );
    $(this).fadeIn('slow');
});

假设你想要实现的是淡出,然后在.logo隐藏时替换内容,然后在替换徽标后淡入。

于 2011-10-24T01:27:49.960 回答