jquery ajax成功淡化效果

时间:2011-06-30 10:22:35

标签: javascript jquery ajax fadein

一旦得到ajax响应,我想做一些像fadeIn这样的效果。 我试过这个,

$.ajax({
        type: "post",
        url: actionLink,
        cache: false,
        data: ....someData....,
        success: function(data) {
           $(".response").fadeOut(100);
           $(".response").html(data);
           $(".response").fadeIn(500);
        }
    });

这是有效的,但数据首先显示,并且闪烁500毫秒获取具有淡入淡出效果的数据,但我需要直接获取加载数据的淡入淡出效果。

我甚至尝试使用Fade out a div with content A, and Fade In the same div with content B,但我仍然遇到同样的问题。

我也尝试过:

$(".response").fadeOut(100).hide();
$(".response").show().html(data).fadeIn(500);

还是一样。我该如何解决这个问题?

6 个答案:

答案 0 :(得分:5)

这件事有效.........

jQuery(".response").fadeOut( 100 , function() {
    jQuery(this).html( data);
}).fadeIn( 1000 );

答案 1 :(得分:2)

你试过了吗?

$(".response").fadeOut(100).html(data).fadeIn(500)

答案 2 :(得分:0)

尝试$(".response").fadeOut(100).delay(100).html(data).fadeIn(500)

这会强制后续操作(将html添加到你的div)等到fadeOut完成后。

答案 3 :(得分:0)

success:function(data)
{
   $(".response").fadeOut(600, function ()
       {
          $(".response").html(data)
        });
   $(".response").fadeIn(600);
}

答案 4 :(得分:0)

我找到的最简单方法是将初始fadeOut()设置为' 0'。这非常有效:

$(".response").fadeOut(0).html(result).fadeIn(500);

设置一个具有实际值的初始fadeOut()会使其“弹出”。 in,然后它渐渐消失。仍然不是理想的结果。

因此,通过将初始fadeOut设置为0,意味着它在淡入之前不会花费十分之一秒的时间淡出。所以你不会产生奇怪的效果。

答案 5 :(得分:0)

概念是:一旦收到ajax响应,请淡入消息-等待几秒钟(延迟)-淡出 像这样 - - - $('div.errorul')。fadeIn(600).html('msg').delay(1000).fadeOut(500);