我正在努力让它发挥作用。我正在创建一系列可点击的按钮来下拉菜单。我希望使它按如下方式工作:
- 如果下拉菜单全部隐藏 - 动画高度
- 如果任何一个下拉菜单可见 - 显示/隐藏以在菜单之间切换
当动画到一个新的下拉菜单在两种情况下都相同时,我可以做到这一点。然而,这不是我想要的样子。我真的很喜欢当一个已经打开时显示/隐藏的“切换”以及第一次打开时的高度动画(以及一旦关闭)。由于我可能会更进一步并启用向下/向上拖动以进行初始打开和关闭,并在打开后向左/向右滑动以在下拉菜单之间移动,这是每个场景需要单独动画的另一个原因。
我首先尝试使用事件来执行此操作,即 click() 按钮和 if() all :hidden,然后执行此操作... click() 按钮和 if() :visible,然后执行其他操作。但这不起作用,菜单刚刚打开并立即关闭(我认为是因为两个 .click() 事件都是背靠背发生的,因为它同时识别了我的 if 语句?不确定。)
下一次尝试,也就是我在下面所做的尝试,尝试将每个 .click() 包装在它自己的 if 语句中以分别定义每个。但正如您从以下小提琴中看到的那样:
不工作...
这是jQuery:
//sideUI drop down
if( $('#sideUIContainer').is(':hidden') && $('#sideUISearchContainer').is(':hidden') && $('#sideUIActionContainer').is(':hidden') ){
$('#navNavigate').click(function(){
$('#sideUIContainer').show();
$('#sideUIContainer, #sideUISearchContainer, #sideUIActionContainer').animate({'height':'504px'});
$('#navNavigate').addClass('active');
}
$('#navSearch').click(function(){
$('#sideUISearchContainer').show();
$('#sideUIContainer, #sideUISearchContainer, #sideUIActionContainer').animate({'height':'504px'});
$('#navSearch').addClass('active');
}
$('#navAction').click(function(){
$('#sideUIActionContainer').show();
$('#sideUIContainer, #sideUISearchContainer, #sideUIActionContainer').animate({'height':'504px'});
$('#navAction').addClass('active');
}
};
// toggle drop down when UI open - menu
if($('#sideUIContainer').is(':visible')){
$('#navNavigate').click(function(){
$('#sideUIContainer, #sideUISearchContainer, #sideUIActionContainer').animate({'height':'0'}, function(){
$('#sideUIContainer').hide();
$('#navNavigate').removeClass('active');
});
}
$('#navSearch').click(function(){
$('#sideUIContainer').hide();
$('#navNavigate').removeClass('active');
$('#sideUISearchContainer').show();
$('#navSearch').addClass('active');
});
$('#navAction').click(function(){
$('#sideUIContainer').hide();
$('#navNavigate').removeClass('active');
$('#sideUIActionContainer').show();
$('#navAction').addClass('active');
});
};
// toggle drop down when UI open - search
if($('#sideUISearchContainer').is(':visible')){
$('#navNavigate').click(function(){
$('#sideUISearchContainer').hide();
$('#navSearch').removeClass('active');
$('#sideUINavigateContainer').show();
$('#navNavigate').addClass('active');
});
$('#navSearch').click(function(){
$('#sideUIContainer, #sideUISearchContainer, #sideUIActionContainer').animate({'height':'0'}, function(){
$('#sideUISearchContainer').hide();
$('#navSearch').removeClass('active');
});
}
$('#navAction').click(function(){
$('#sideUISearchContainer').hide();
$('#navSearch').removeClass('active');
$('#sideUIActionContainer').show();
$('#navAction').addClass('active');
});
};
// toggle drop down when UI open - action
if($('#sideUIActionContainer').is(':visible')){
$('#navNavigate').click(function(){
$('#sideUIActionContainer').hide();
$('#navAction').removeClass('active');
$('#sideUINavigateContainer').show();
$('#navNavigate').addClass('active');
});
$('#navSearch').click(function(){
$('#sideUIActionContainer').hide();
$('#navSearch').removeClass('active');
$('#sideUISearchContainer').show();
$('#navSearch').addClass('active');
});
$('#navAction').click(function(){
$('#sideUIContainer, #sideUISearchContainer, #sideUIActionContainer').animate({'height':'0'}, function(){
$('#sideUIActionContainer').hide();
$('#navAction').removeClass('active');
});
}
};
如果我必须澄清上述内容,请告诉我。但希望我的小提琴和 jQuery 代码能帮助你们进一步理解我想要做什么。
非常感谢任何和所有帮助。谢谢!