2012-04-20 41 views
2

有几个div需要显示/隐藏,并且内部的按钮需要知道它何时开启以及何时关闭。不知何故,他们需要“与他人沟通”以了解何时隐藏或可见。噢,我想保持所有元素的平滑淡入淡出效果。简单但棘手显示/隐藏切换开/关组合驱使我疯狂

谢谢!

我的小提琴是在这里: http://jsfiddle.net/Pe9jn/

以下是我已经得到了大部分作品的代码,但它是一个有点古怪:

//hide maximize link on page load 
$('.maximize_menu').css('display','none'); 


    //settings 
    var opacity = 1, toOpacity = 0, duration = 350; 
    //set opacity ASAP and events 

$('.toggle_all, .toggle_all2').css('opacity',opacity).toggle(function() { 
     $('#content, .maximize_menu, #menu, .minimize_menu').fadeTo(duration,toOpacity); 
    }, function() { 
     $('#content, .maximize_menu, #menu, .minimize_menu').fadeTo(duration,opacity); 
    }           
); 

// this minimizes the menu and should make the mazimize_menu link visible when toggled off 
$('.minimize_menu').css('opacity',opacity).toggle(function() { 
     $('#menu, .minimize_menu,.maximize_menu').fadeTo(duration,toOpacity); 
    }, function() { 
     $('.maximize_menu, #menu, .minimize_menu, .maximize_menu').fadeTo(duration,opacity); 
     $('.maximize_menu').show(duration,toOpacity); 
     $('.maximize_menu').css('display','block'); 
    }              
); 


// this maximizes the menu and should disappear once the menu is visible 
$('.maximize_menu').css('opacity',opacity).toggle(function() { 
     $('#menu, .minimize_menu,').fadeTo(duration,toOpacity); 
    }, function() { 
     $('#menu, .minimize_menu, .maximize_menu').fadeTo(duration,opacity); 

    }             
); 
+0

你看过JQuery的“数据”函数吗?可能是一个很好的方式来跟踪什么是隐藏的,什么不是。 – McGarnagle 2012-04-20 08:44:06

+0

我没有这方面的经验,可能超过我的技能水平。 – user433575 2012-04-20 09:07:21

回答

1

我认为你应该重新考虑所有的逻辑,因为你实际上并不隐藏元素,你只是将不透明度设置为0.你真正应该使用的是fadeOut()fadeIn()

+0

Gotcha谢谢,我会尝试,但它仍然不会解决我的切换boggle;) – user433575 2012-04-20 09:10:34