我在网站上有一个多步骤的网络表单。当一个人点击下一个时,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;
});
答案 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 absolute
或position 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;
}