3

我在网站上有一个多步骤网络表单。当一个人单击下一个 div 时,当 div 2 淡入时,div 会淡出。我看到的问题是 div 1 淡出时 div 2 淡入 div 1 下方,然后在 div 1 淡出时跳转。

我如何防止这种情况并让它们真正交叉淡化?

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;
});
4

2 回答 2

5

尝试这个:

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

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

于 2014-02-09T01:02:47.767 回答
2

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

一旦 s完全隐藏,step-2div 跳入该位置的原因是定位。或缺乏。为此,您必须使用, 或. 我在为您创建的示例中使用了绝对值。step-1tep-1position 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;
}
于 2014-02-09T01:03:51.850 回答