我正在使用 Jquery 来控制嵌套下拉菜单的 css3 过渡(边距)动画。我可以在单击触发菜单主要部分中的事件的链接时将嵌套菜单下拉,然后如果我再次单击相同的触发器,它将关闭它应该执行的下拉菜单。但是,如果我单击所有下拉触发器,所有下拉菜单都同时可见。
我所追求的是,当我单击同一主菜单中的另一个下拉触发器时,如果其中一个下拉菜单已经打开,则打开的下拉菜单将在新的下拉菜单打开时使用 Jquery 控制的 css3 转换关闭。所以一次只能打开一个下拉菜单。
我是 jquery 的新手,我知道下面的 jquery 不是最好的方法。非常感谢任何正确方向的指导。
查询:
$(function() {
$("#drop1").click(function() {
$(".sub1").toggleClass("submenu");
});
});
$(function() {
$("#drop2").click(function() {
$(".sub2").toggleClass("submenu");
});
});
$(function() {
$("#drop3").click(function() {
$(".sub3").toggleClass("submenu");
});
});
CSS:
ul {width:100%; list-style: none; display:block;}
ul li {display:inline-block; width: 20%; height: 40px; float:left; background: #ccc; text-align:center;}
ul li a {display:block; width:100%; height: 40px; position:relative;}
.sub1, .sub2, .sub3 {width:300px; margin: -40px 0 0 0; position:absolute; z-index:-1;
transition: margin 0.2s ease;
-moz-transition: margin 0.2s ease;
-webkit-transition: margin 0.2s ease;
-o-transition: margin 0.2s ease;
-ms-transition: margin 0.2s ease;}
.submenu {margin:0; background: #666;}
.sub1 li, .sub2 li, .sub3 li {text-align:center; width: 33%;}
HTML:
<ul>
<li>normal</li>
<li><a id="drop1" href="#">drop</a>
<ul class="sub1">
<li>drop</li>
<li>drop</li>
<li>drop</li>
</ul>
</li>
<li><a id="drop2" href="#">drop</a>
<ul class="sub2">
<li>drop</li>
<li>drop</li>
<li>drop</li>
</ul>
</li>
<li>normal</li>
<li><a id="drop3" href="#">drop</a>
<ul class="sub3">
<li>drop</li>
<li>drop</li>
<li>drop</li>
</ul>
</li>
</ul>