2013-02-19 20 views
0

我試過下面的代碼示例的不同變化:如何讓jQuery在外部內容加載之後順暢地爲元素設置動畫效果?

$(document).ready(function(){ 
    $('#demo').hide(); 
    $("button").click(function(){ 
     $("#demo").load("demo.php").show('medium'); 
    }); 
}); 

...但動畫「跳躍」,而並不順利。這就像show()函數假設隱藏的#demo元素比裝入新外部信息時小。 #demo元素中沒有任何內容,直到load()將它放到那裏,所以它開始時小於在將外部內容加載到它之後。

我該如何讓show()「明白」#demo實際上是在其中加載的內容較大,因此啓動時它的動畫流暢嗎?

+1

試着把'show'放在負載回調中。 – j08691 2013-02-19 03:29:18

+0

嘗試過,但我無法讓它工作。你是怎樣做的? – Kebman 2013-02-19 03:32:36

回答

3

嘗試使用complete callback function.load()

$(document).ready(function(){ 

    var demo = $('#demo'); 

    demo.hide(); 
    $("button").click(function(){ 
     demo.load('demo.php', function() { 
      demo.show('medium'); 
     }); 
    }); 
}); 
+0

非常好,內容翔實的答案!此外,我學習了一種更好的方式來設置你設置變量的方式。謝謝! :) – Kebman 2013-02-19 04:09:39

2
$("#demo").load("demo.php",function() { 
    $("#demo").show('medium') 
}); 

頁面加載時的動畫會「中」速度出示容器。在load的回調中使用show函數。

.show()

+0

你也可以先顯示#demo,然後加載php。你可以使用加載圖形去那條路線 – 2013-02-19 03:50:58

相關問題