Javascript 如何使用onclick函数打开子菜单并使用onclick函数隐藏
我做了一个侧边栏导航,我是在鼠标上方打开子菜单时这样做的,但我希望它在单击时打开,在同一选项卡上单击时隐藏它。请检查我的代码在这个代码笔谢谢Javascript 如何使用onclick函数打开子菜单并使用onclick函数隐藏,javascript,html,css,Javascript,Html,Css,我做了一个侧边栏导航,我是在鼠标上方打开子菜单时这样做的,但我希望它在单击时打开,在同一选项卡上单击时隐藏它。请检查我的代码在这个代码笔谢谢 <nav class="navigation"> <ul class="mainmenu"> <li><a href="">Home</a></li> <li><a href="">About</a></li>
<nav class="navigation">
<ul class="mainmenu">
<li><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Products</a>
<ul class="submenu">
<li><a href="">Tops</a></li>
<li><a href="">Bottoms</a></li>
<li><a href="">Footwear</a></li>
</ul>
</li>
<li><a href="">Contact us</a></li>
</ul>
</nav>
提前感谢。您可以使用隐藏的复选框,在不使用javascript的情况下单击关闭和打开子菜单:
html,正文{
字体系列:Arial、Helvetica、无衬线字体;
}
.导航{
宽度:300px;
}
.main菜单,.子菜单{
列表样式:无;
填充:0;
保证金:0;
}
.main菜单a、.main菜单标签{
显示:块;
背景色:#CCC;
文字装饰:无;
填充:10px;
颜色:#000;
}
.main菜单a:悬停,.main菜单标签:悬停{
背景色:#C5C5;
}
/*隐藏输入*/
.主菜单输入{
显示:无;
}
/*如果选中同级复选框,则显示菜单*/
.main菜单输入:选中~。子菜单{
显示:块;
最大高度:200px;
}
.子菜单a..子菜单标签{
背景色:#999;
}
.子菜单a:悬停{
背景色:#666;
}
.子菜单{
溢出:隐藏;
最大高度:0;
过渡:所有0.5s缓解;
}
您可以使用带有的隐藏复选框,在不使用javascript的情况下单击关闭和打开子菜单:
html,正文{
字体系列:Arial、Helvetica、无衬线字体;
}
.导航{
宽度:300px;
}
.main菜单,.子菜单{
列表样式:无;
填充:0;
保证金:0;
}
.main菜单a、.main菜单标签{
显示:块;
背景色:#CCC;
文字装饰:无;
填充:10px;
颜色:#000;
}
.main菜单a:悬停,.main菜单标签:悬停{
背景色:#C5C5;
}
/*隐藏输入*/
.主菜单输入{
显示:无;
}
/*如果选中同级复选框,则显示菜单*/
.main菜单输入:选中~。子菜单{
显示:块;
最大高度:200px;
}
.子菜单a..子菜单标签{
背景色:#999;
}
.子菜单a:悬停{
背景色:#666;
}
.子菜单{
溢出:隐藏;
最大高度:0;
过渡:所有0.5s缓解;
}
我希望这对您有所帮助。我添加了一些jquery。用于目标子菜单的Id。你也可以为其他人重复。只需要更改id。我也为about选项卡创建了一个示例。单击此处的另一个选项卡,其他选项卡菜单将关闭
$('.dropdown')。单击(函数(){
var target_id=$(this.attr('data-toggle');
$('.dropdownlist').not(target_id).slideUp();
$(target_id).slideToggle();
$('.dropdownlist').not(target_id).parents('li,.icon tab').removeClass('active');
$('.dropdown').not(this).parents('.icon选项卡').removeClass('active');
$(this).parents('li,.icon-tab').toggleClass('active');
});代码>
html,正文{
字体系列:Arial、Helvetica、无衬线字体;
}
/*为整个菜单定义固定宽度*/
.导航{
宽度:300px;
}
/*重新设置列表以删除要点和填充*/
.main菜单,.子菜单{
列表样式:无;
填充:0;
保证金:0;
}
/*使所有链接(主菜单和子菜单)具有填充和背景色*/
.主菜单a{
显示:块;
背景色:#CCC;
文字装饰:无;
填充:10px;
颜色:#000;
}
/*添加悬停行为*/
.main菜单a:悬停{
背景色:#C5C5;
}
/*将鼠标悬停在.main菜单项上时,
显示其中的子菜单。
我们正在将子菜单的最大高度从0更改为200px;
*/
/*
我们现在只覆盖.子菜单链接的背景色。
CSS向下读取页面,因此底部的代码将覆盖顶部的代码。
*/
.子菜单a{
背景色:#999;
}
/*子菜单内链接的悬停行为*/
.子菜单a:悬停{
背景色:#666;
}
/*这是所有子菜单的初始状态。
我们将其设置为最大高度:0,并隐藏溢出的内容。
*/
.子菜单{
显示:无;}
我希望这对您有所帮助。我添加了一些jquery。用于目标子菜单的Id。你也可以为其他人重复。只需要更改id。我也为about选项卡创建了一个示例。单击此处的另一个选项卡,其他选项卡菜单将关闭
$('.dropdown')。单击(函数(){
var target_id=$(this.attr('data-toggle');
$('.dropdownlist').not(target_id).slideUp();
$(target_id).slideToggle();
$('.dropdownlist').not(target_id).parents('li,.icon tab').removeClass('active');
$('.dropdown').not(this).parents('.icon选项卡').removeClass('active');
$(this).parents('li,.icon-tab').toggleClass('active');
});代码>
html,正文{
字体系列:Arial、Helvetica、无衬线字体;
}
/*为整个菜单定义固定宽度*/
.导航{
宽度:300px;
}
/*重新设置列表以删除要点和填充*/
.main菜单,.子菜单{
列表样式:无;
填充:0;
保证金:0;
}
/*使所有链接(主菜单和子菜单)具有填充和背景色*/
.主菜单a{
显示:块;
背景色:#CCC;
文字装饰:无;
填充:10px;
颜色:#000;
}
/*添加悬停行为*/
.main菜单a:悬停{
背景色:#C5C5;
}
/*将鼠标悬停在.main菜单项上时,
显示其中的子菜单。
我们正在将子菜单的最大高度从0更改为200px
.subrollin{
overflow: hidden;
max-height: 0;
-webkit-transition: all 0.5s ease-in;
}
.subrollout{
overflow: block;
max-height: 200px;
-webkit-transition: all 0.5s ease-out;
}
var element = document.getElementsByClassName('parentmenu')[0];
element.addEventListener("click", function(e) {
var sub = document.getElementsByClassName('submenu')[0];
if(sub.classList.contains('subrollout')){
sub.classList.add("subrollin");
sub.classList.remove("subrollout");
} else {
sub.classList.add("subrollout");
sub.classList.remove("subrollin");
}
}, false);