我无法弄清楚为什么我的div在FadeOut结束后不会淡出。
继承人我的Html:
<div class="header-container">
<header class="wrapper clearfix">
<ul class="nav nav-tabs">
<li class="active">
<a href="#tab1">Section 1</a>
</li>
<li>
<a href="#tab2">Section 2</a>
</li>
</ul>
</header>
</div>
<div class="main-container">
<div class="main wrapper clearfix">
<div class="tab-content">
<div class="tab-pane active" id="tab1">
<p>I'm in Section 1.</p>
</div>
<div class="tab-pane" id="tab2">
<p>Howdy, I'm in Section 2.</p>
</div>
</div>
</div> <!-- #main -->
</div> <!-- #main-container -->
我的JS
jQuery(document).ready(function(){
$('.nav-tabs a').click(function (e) {
e.preventDefault();
var href = $(this).attr('href'); // Select first tab
$('.tab-pane').fadeOut(1000,function(){
$(href).fadeIn(1000);
});
});
});
我的Css
.tab-pane {
display: none;
}
我做了一个jsfiddle:
http://jsfiddle.net/JohnnyDevv/hKq2K/1/
我尽可能简单...... 提前致谢
答案 0 :(得分:23)
这将输出您期望的结果:
$('.tab-pane').fadeOut(1000).promise().done(function(){
$(href).fadeIn(1000);
});
.promise()
确保首先完成fadeOut()
,然后在.done()
执行完毕后完成。{/ p>
答案 1 :(得分:1)
您正在使用公共类名.tab-pane来设置似乎是问题的淡出动画,尝试利用您拥有的“.active”类
试试这个js
$('.nav-tabs a').click(function (e) {
e.preventDefault();
var href = $(this).attr('href'); // Select first tab
// select the active tab then remove the active class name then do the fade out
$('.tab-pane.active').removeClass("active").fadeOut('slow',function(){
$(href).addClass("active").fadeIn(1000);
});
});
答案 2 :(得分:1)