当你点击一个链接或按钮时,是否有可能让div淡出,然后在同一个地方淡入不同内容的div?
它显然使用.fadeIn()
和.fadeOut()
函数,但我不确定所有代码的外观,特别是定位,以及在同一页面上执行两次的能力
答案 0 :(得分:12)
如果您希望淡出一个</div>
,然后淡出另一个:
<div id="div1"></div>
<div id="div2" style="display: none"></div>
<div><a href="#" id="triggerButton">Swap Divs</a></div>
$('#triggerButton').click(function(e){
e.preventDefault();
$('#div1').fadeOut('fast', function(){
$('#div2').fadeIn('fast');
});
});
如果您想要使用不同的地方替换在同一个地方淡出的</div>
:
<div id="div1"></div>
<div><a href="#" id="triggerButton">Swap Divs</a></div>
$('#triggerButton').click(function(e){
$('#div1').fadeOut('fast', function(){
$('#div1').replace('<div id="div2"></div>').fadeIn('fast');
});
});
希望这有帮助。
答案 1 :(得分:9)
以下两个框可以互相淡入淡出:http://jsfiddle.net/jfriend00/3XwZv/。
使用position: absolute
容器中的position: relative
将这两个框放在一起。
一个淡出,另一个淡入,当一个完成时,它们反转过程。 jQuery代码如下所示:
var fadeinBox = $("#box2");
var fadeoutBox = $("#box1");
function fade() {
fadeinBox.stop(true, true).fadeIn(2000);
fadeoutBox.stop(true, true).fadeOut(2000, function() {
// swap in/out
var temp = fadeinBox;
fadeinBox = fadeoutBox;
fadeoutBox = temp;
// start over again
setTimeout(fade, 1000);
});
}
// start the process
fade();
HTML看起来像这样:
<div id="wrapper">
<div id="box1" class="box"></div>
<div id="box2" class="box"></div>
</div>
CSS看起来像这样:
.box {
position: absolute;
height: 100px;
width: 100px;
}
#wrapper {position: relative;}
#box1 {background-color: #F00;}
#box2 {background-color: #00F; display: none;}
答案 2 :(得分:1)