3

divボタンをクリックしたときに表示/非表示にしたいがあります。の配置はdiv

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

、つまり、 I から、2 つの infoの左右mainContentを表示または非表示にするかどうかを制御します。divこれにより、次の問題が発生します。のfadeToggle()1 つがdiv透明になるだけでなく、そのdisplay属性が に設定され、フェードアウト時にnoneが変位します。2 つの関数を指定しない (または次のように関数を分割する) 代わりの方法はありますか?mainContentsomeStatsfadeToggle()

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

? fadeToggle()それとも何らかの方法で操作できますか?

4

3 に答える 3

5

不透明度をアニメートできます

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

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

http://jsfiddle.net/gaby/MNhcU/でのデモ

于 2012-12-01T01:52:16.133 に答える
0

いつでもtoggle(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..
});
于 2012-12-01T02:04:23.087 に答える
0

jsBinデモ

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;、アニメーションが終了した後のように設定されません。

于 2012-12-01T01:55:50.020 に答える