2012-12-01 61 views
3

我有一个div,我想单击按钮时显示/隐藏。该div的安排的是替代fadeToggle()JQuery

<div id="someStats"> 
</div> 
<div id="mainContent"> 
</div> 
<div id="someOtherStats"> 
</div> 

,这意味着从mainContent我控制是否显示或隐藏两个信息div的左侧和右侧。这给了我下面的问题:不仅fadeToggle()使div之一透明,其display属性设置为none,这导致在淡出someStatsmainContent的位移。是否有替代fadeToggle()没有specifing两个函数(或拆分功能像

if(div.isShown()){ 
    hide() 
}else{ 
    show() 
} 

?或者,我可以以某种方式操纵fadeToggle()

+1

正如标题所提到的方法的名称是_fadeToggle_不_toggleFade_,你是什么_“specifing两个功能” _是什么意思? – undefined

+0

这是一个拼写错误。在问题中更改它,并添加了“指定两个功能”的解释 –

回答

5

您只需动画的不透明度

var target = $('#someStats'), 
    opacity = target.css('opacity'); 

target.animate({opacity: (opacity==1?0:1)}); 

Demo athttp://jsfiddle.net/gaby/MNhcU/

+0

我认为这正是我搜索的内容,谢谢! –

0

jsBin demo

statC = 0; // just a counter :) 

$('#mainContent').click(function(){ 
    $('#someStats').fadeTo(300, statC++%2); // 1,0,1,0,1,0,..... 
}); 

幻灯片切换和FadeToggle将“分离”从你的DOM元素位置,这样你就可以.fadeTo([time],[opacity]);尝试的元素将刚刚褪去的不透明度,而不是动画完成后设置为display:none;

0

您可以随时使用切换(http://api.jquery.com/toggle/),然后控制每个实例。

小提琴从上面分叉 - http://jsfiddle.net/hpaMV/

$('#some').toggle(function(){ 
    $('#someStats').animate({opacity: 1}); 
    ..anything else.. 
}, function(){ 
    $('#someStats').animate({opacity: 0}); 
    .. the opposite of the previous anything else.. 
});