2012-11-08 28 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>