2012-11-08 90 views
2

我有兩個div:DIV1和DIV2jQuery的使用了slideDown和replaceWith一起

我試圖其中DIV1動畫到是透明的,並在它的結束,DIV2向下滑動在其頂部上實現的效果(替換DIV1)。

這裏是我試過(http://jsfiddle.net/RHSgf/4/):

div1.animate({ 
    opacity: 0.0 
}, 2000, function() { 
    $(this).replaceWith(div2.hide().slideDown(2000, 'linear', function() {})); 
}); 

但在DIV1的動畫結束,DIV2不往下滑那麼優雅。

我不知道爲什麼滑下來是如此生澀。感謝您找到正確的方法來獲得幫助。

回答

4

移動slideDownreplaceWith,它應該工作:

$(this).replaceWith(div2.hide()); 
div2.slideDown(2000, 'linear'); 

http://jsfiddle.net/elclanrs/RHSgf/5/

+0

謝謝,這工作。但是,有人可以請解釋爲什麼這與我的錯誤代碼相比的作用? – bits

+0

我不知道TBH,因爲剛剛經歷過的事情,我只知道它不能以其他方式完成。 – elclanrs

3

試試這個,調整時間按您的要求!

<script type="text/javascript"> 
$(document).ready(function() 

         { 
         $("#div2").fadeOut(2000); 
         setTimeout(function() { $("#div1").slideDown(2000); }, 2000); 
         } 
       ); 

</script>