美文网首页JS学习
2020-07-12 JS学习 设置二级导航栏动态效果

2020-07-12 JS学习 设置二级导航栏动态效果

作者: 红酒煮咖啡 | 来源:发表于2020-07-13 00:47 被阅读0次

1、html代码写出一个二级导航栏(如果js有涉及获取节点之类的,元素之间不可以有换行和空格)

<div id="nav">
    <ul>
        <li>
            <a href="#">公司介绍</a>
            <ul>
              <li class="show"><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>
            <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>
              <li><a href="#">公司形象</a></li>
              <li><a href="#">公司荣誉</a></li>
              <li><a href="#">公司文化</a></li>
            </ul>
        </li>
    </ul>
</div>

大概的结构就是这样,图片有些难看,后期再用visio画一遍


2020-07-13_001253.png

2、CSS样式设置

#nav{
    width: 800px;
    height: auto;
    position: relative;
    overflow: auto;
    background: rgba(0,0,0,0.5);
}
#nav ul{
    list-style-type: none;
    padding: 0;
    margin: 0;
}
#nav>ul>li{
    width: 120px;
    height: auto;
    float: left;
    text-align: center;
    border:1px solid #FFFFFF;
}
#nav>ul>li>a{
    display: block;
    text-decoration: none;
    background: #f00;
    color: #FFFFFF;
    line-height: 30px;
}
#nav>ul>li>a.bg{
    background: #00FF00;
}
#nav>ul>li>ul{
    display: none;
}
#nav>ul>li>ul.show{
    display: block;
}

3、js方法

var div=document.getElementById('nav');//获得导航栏最高级的div对象
var dul=div.children[0];//一级导航ul:div>ul
var lis=dul.children;//一级导航栏内容,也是二级导航栏的标题:div>ul>li
for(var i=0;i<lis.length;i++){
    lis[i].onmouseover=function(){//鼠标经过时触发的函数
        this.children[1].setAttribute('class','show');//对二级导航ul的class设置
        this.children[0].setAttribute('class','bg');//对a的class设置,a也是二级导航栏的标题
    }
    lis[i].onmouseout=function(){//鼠标移开时触发的函数
        this.children[1].removeAttribute('class');
        this.children[0].removeAttribute('class');//删除class属性
    }
}

4、最后的实现效果就是这个样子,更多的样式还是要看情况自己设置

鼠标移开二级导航栏隐藏: onmouseout.png
鼠标经过二级导航栏弹出: onmouseover.png

相关文章

网友评论

    本文标题:2020-07-12 JS学习 设置二级导航栏动态效果

    本文链接:https://www.haomeiwen.com/subject/wydocktx.html