js实现二级菜单显示和收缩

Posted blogging

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js实现二级菜单显示和收缩相关的知识,希望对你有一定的参考价值。

window.onload=function(){
    var aLi=document.getElementsByTagName(‘li‘);
    for(var i=0; i<aLi.length; i++){
        aLi[i].onmouseover=function(){
            var oSubNav=this.getElementsByTagName(‘ul‘)[0];
            if(oSubNav){
            var This=oSubNav;
            clearInterval(This.time);
            This.time=setInterval(function(){
                    This.style.height=This.offsetHeight+16+"px";
                    if(This.offsetHeight>=120)
                    clearInterval(This.time);
                },30)
             }
          }
        //鼠标离开菜单,二级菜单动画收缩起来。        
     aLi[i].onmouseout=function(){
            var oSubNav=this.getElementsByTagName(‘ul‘)[0];
            if(oSubNav){
            var This=oSubNav;
            clearInterval(This.time);
            This.time=setInterval(function(){
                    This.style.height=This.offsetHeight-16+"px";
                    if(This.offsetHeight<=0)
                    clearInterval(This.time);
                },30)
             }
          }
        
    }
}
<ul class="nav">
    <li><a href="#">一级菜单</a>
        <ul class="subNav">
            <li><a href="#">二级菜单</a></li>
            <li><a href="#">二级菜单</a></li>
            <li><a href="#">二级菜单</a></li>
            <li><a href="#">二级菜单</a></li>
        </ul>
    </li>
    <li><a href="#">一级菜单</a>
        <ul class="subNav">
            <li><a href="#">二级菜单</a></li>
            <li><a href="#">二级菜单</a></li>
            <li><a href="#">二级菜单</a></li>
            <li><a href="#">二级菜单</a></li>
        </ul>
    </li>
    <li><a href="#">一级菜单</a></li>
    <li><a href="#">一级菜单</a></li>
    <li><a href="#">一级菜单</a></li>
</ul>

 

以上是关于js实现二级菜单显示和收缩的主要内容,如果未能解决你的问题,请参考以下文章

二级菜单打开后页面刷新不收缩效果

只用CSS能否制作可以收缩的下拉菜单

jquery实现后台系统左侧菜单的点击展开/收缩二级菜单效果

js实现鼠标滑过显示二级菜单

关于css二级菜单显示, 看了一个例子, 鼠标放在一级菜单时候, 二级菜单就显示出来了

antd menu收缩时二级菜单不跟随的问题。