2011-06-30 159 views
4

我想要做一些效果,例如fadeIn頁面,一旦我得到ajax響應。 我想這一點,jquery ajax成功淡入淡出效果

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

這是工作,但數據顯示第一和用500ms的淡入效果獲取數據的閃光燈,但我需要直接與淡入淡出效果得到加載的數據。

我甚至嘗試過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); 

還是一樣。我該如何解決?

回答

5

這件事的工作.........

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

你試過:

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

嗨,謝謝你的回覆。試過了。還是一樣。第一個數據顯示並開始fadeIn – Max

0

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

這將迫使後續操作(添加HTML到你的div)等到fadeOut完成後。

+0

嘿,下面我發佈了答案。我知道了。謝謝回覆。它嘗試了你的建議。還是一樣。 – Max

+0

你應該檢查你的答案是對問題的正確答案,以便當人們來這裏發表答案時,他們會發現答案已經得到解答。 – jsonnull

+0

我只能在2天后檢查我自己的答案。這是我檢查時得到的警報。 – Max

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

我找到的最簡單的方法是將初始fadeOut()設置爲'0'。這完美地工作:

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

與實際值設定初始淡出()使得它「流行」中,然後將其在變淡仍然不是理想的結果。

因此,通過將初始fadeOut設置爲0,表示在淡入之前它不會花費十分之一秒的淡出時間。所以您不會得到奇怪的效果。