Crossfade两个div使用jQuery

时间:2014-02-09 00:59:26

标签: javascript jquery html cross-fade

我在网站上有一个多步骤的网络表单。当一个人点击下一个时,div会逐渐淡出,因为div二渐渐淡入。我看到的问题是当div一个淡出div二衰落在div一个下面然后跳跃一旦div一个淡出。

如何防止这种情况并让它们实际交叉淡入淡出?

HTML

<div class="step-1"> 
  <!-- CODE -->
</div >

<div class="step-2"> 
  <!-- THIS DIV IS HIDDEN TO BEGIN WITH -->
</div >

JS

$( ".step-1-next" ).on( "click", function() {
    $( ".step-1" ).fadeOut( "slow" );
    $( ".step-2" ).fadeIn( "slow" );
    return false;
});

2 个答案:

答案 0 :(得分:5)

试试这个:

$( ".step-1-next" ).on( "click", function() {
    $( ".step-1" ).fadeOut( "slow", function(){
       $( ".step-2" ).fadeIn( "slow" );
      });
    });

这将导致淡入等待被调用,直到淡出完成。

答案 1 :(得分:2)

工作示例http://jsfiddle.net/JUMJY/

step-2 div在step-1被完全隐藏后跳入tep-1位置的原因是因为定位。或缺乏。为此,您必须使用position absoluteposition fixed。我在为你创建的例子中使用了绝对值。

.step-1 {
    background: blue;
    top: 20px;
    left: 20px;

}

.step-2 {
    background: red;
    display: none;
    top: 130px;
    left: 20px;
}

div {
    width: 100px; 
    height: 100px;
    margin: 20px;
    position: absolute;
}

button {
    position: absolute;
    right: 50px;
    top: 0;
}