当前位置: 首页 > article >正文

前端——JavaScript综合练习 下拉框样式实现(2)

上篇文章实现了点击版的下拉框样式,本文的下拉框为:当鼠标放在标题上时下拉框出现,收回时下拉框回收。

最终效果如下:

下拉框样式(2)(以河北大学研究生网站为例)

大致与点击版相同

以下为全部代码

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="下拉框样式.css">
   
    <script>
      window.onload=function(){
        var first_li=document.querySelectorAll(".A>.b")
        console.log(first_li)

        for(var i=0;i<first_li.length;i++){

            first_li[i].onmouseenter=function(){
                if(this.querySelector(".sub")){
                    this.querySelector(".sub").style.display="block"

                    // 获取盒子高度
                    var second_li=this.querySelectorAll(".sub li")
                    var sum_height=0
                    for(var j=0;j<second_li.length;j++){
                        sum_height += second_li[j].clientHeight
                    }

                    this.querySelector(".sub").style.height= sum_height + "px"
                }
                
            }
            first_li[i].onmouseleave=function(){
                if(this.querySelector(".sub")){
                    this.querySelector(".sub").style.height="0px"
                }
            }
        }
}
    </script> 
</head>

<body>
    <!-- 下拉框 -->
    <div class="a">
        <ul class="A">

            <li class="b">
                <h3><a href="#">首页</a></h3>
            </li>

            <li class="b">
                <h3><a href="#">机构简介</a></h3>
                 <ul class="sub">
                     <li><a href="#">部门概况</a></li>
                     <li><a href="#">机构职能</a></li>
                     <li><a href="#">联系方式</a></li>
                </ul>
            </li>

            <li class="b">
                <h3><a href="#">招生工作</a></h3>
                <ul class="sub">
                    <li><a href="#">硕士招生</a></li>
                    <li><a href="#">博士招生</a></li>
                    <li><a href="#">信息公开</a></li>
                    <li><a href="#">政策法规</a></li>
                    <li><a href="#">联系信息</a></li>
                    <li><a href="#">通知公告</a></li>
                    <li><a href="#">专业信息</a></li>
                 </ul>
            </li>

            <li class="b">
                <h3><a href="#">培养工作</a></h3>
                <ul class="sub">
                    <li><a href="#">学籍管理</a></li>
                    <li><a href="#">教学管理</a></li>
                    <li><a href="#">培养方案</a></li>
                    <li><a href="#">课程建设</a></li>
                </ul>
            </li>

            <li class="b">
                <h3><a href="#">学位管理</a></h3>
                <ul class="sub">
                    <li><a href="#">学位管理</a></li>
                    <li><a href="#">学位委员会</a></li>
                    <li><a href="#">政策法规</a></li>
                    <li><a href="#">常置信息</a></li>
                    <li><a href="#">优博优硕</a></li>
                </ul>
            </li>

            <li class="b">
                <h3><a href="#">学位点建设</a></h3>
                <ul class="sub">
                    <li><a href="#">学位点评估</a></li>
                    <li><a href="#">学位点建设</a></li>
                </ul>
            </li>

            <li class="b">
                <h3><a href="#">专业学位</a></h3>
                <ul class="sub">
                    <li><a href="#">专业学位案例中心</a></li>
                    <li><a href="#">示范课、案例库建设</a></li>
                    <li><a href="#">培养实践基地建设</a></li>
                    <li><a href="#">专业学位教指委网站</a></li>
                    <li><a href="#">全国各专业学位教指委指导性培养方案</a></li>
                </ul>
            </li>


            <li class="b">
                <h3><a href="#">导师管理</a></h3>
                <ul class="sub">
                    <li><a href="#">导师选聘</a></li>
                    <li><a href="#">导师培训</a></li>
                    <li><a href="#">导师考核</a></li>
                    <li><a href="#">博士生导师简介</a></li>
                </ul>
            </li>



            <li class="b">
                <h3><a href="#">学生工作</a></h3>
                    <ul class="sub">
                    <li><a href="#">思政教育</a></li>
                    <li><a href="#">日常事务</a></li>
                    <li><a href="#">奖助工作</a></li>
                    <li><a href="#">创新创业</a></li>
                    <li><a href="#">就业工作</a></li>
                    <li><a href="#">研究生会</a></li>
                    <li><a href="#">政策文件</a></li>
                </ul>
            </li>


            <li class="b">
                <h3><a href="#">文件汇编</a></h3>
            </li>


            <li class="b">
                <h3><a href="#">下载专区</a></h3>
                <ul class="sub">
                    <li><a href="#">招生材料</a></li>
                    <li><a href="#">培养材料</a></li>
                    <li><a href="#">学位材料</a></li>
                    <li><a href="#">导师材料</a></li>
                    <li><a href="#">评奖评优</a></li>
                    <li><a href="#">各类证明材料</a></li>
                    <li><a href="#">就业创业</a></li>
                </ul>
            </li>
    

        </ul>

    </div>



</body>
</html>

css

 *{
    padding: 0;
    margin: 0;
    transition: all 0.5s ease;
}


/* 下拉框开始 */

.a{
    background: #ebebeb;
    height: 50px;
    
}
 

.A{
    display: flex;
    width: 90%;
    margin: 120px auto;
    line-height: 50px;
    /* background: rgb(123, 123, 231); */
    padding: 0px 15px;
    justify-content: space-between;
    /* position: relative */
}

li{
    list-style: none;
}

.b{
    /* border: rgb(209, 159, 97) 2px solid; */
    padding: 0px 25px;
    position: relative

}

h3 a{
    text-decoration: none;
    color: black;
    font-weight: 500;
    align-items: center;
}
.b:hover{
    background: #cccccc;
}


/* .sub{
    background: rgba(0, 0, 0, 0.696);
    position: absolute;

    width: 170px;
    top: 50px;
    left: -18px;
    display: none;
} */
.sub a{
    display: block;  
    /* a标签 内联级元素 撑不起来 转为块级元素 */
    margin: 0 auto;
    text-align: center;
    text-decoration: none;
    color: white;
    align-items: center;
    line-height:40px;
    font-size: 15px;
}


.sub li:hover{
    background: rgba(255, 255, 255, 0.696);
    color: rgba(0, 0, 0, 0.674);

}

.sub{
    background: rgba(0, 0, 0, 0.684);
    position: absolute;
    
    height: 0px;
    width: 170px;
    top: 50px;
    left: -18px;
    /* display: none; */
    overflow: hidden;
}


http://www.kler.cn/a/317941.html

相关文章:

  • Linux 下 mysql 9.1 安装设置初始密码 【附脚本】
  • C#中 layout的用法
  • A3超级计算机虚拟机,为大型语言模型LLM和AIGC提供强大算力支持
  • 【云原生系列--Longhorn的部署】
  • 深度学习--正则化
  • 国家网络安全法律法规
  • 110Redis 简明教程--Redis 数据类型
  • 手写Spring第三篇,原来Spring容器是使用反射来初始化对象的
  • 考前须知:Oracle OCP考试流程和准备
  • 从零开始,Docker进阶之路(三):Docker镜像与命令
  • cmaklist流程控制——调试及发布
  • 深度学习(5):torch.nn.Module
  • 实战OpenCV之几何变换
  • 【学习笔记】exkmp(Z函数)
  • 关于C++的备忘录
  • Qt-QComboBox输入类控件(31)
  • 说一说Zookeeper的应用场景及其原理
  • pandas中数据的合并
  • 200Kg大载重多旋翼无人机应用前景详解
  • Solidity——抽象合约和接口详解
  • 【路径规划】 通过使用前向动态规划算法在地形上找到最优路径
  • 运维工程师面试整理-沟通能力
  • Spring Security 详解:保护Java应用的强大盾牌
  • linux下不同库出现符号冲突的解决方式
  • LLM - 理解 多模态大语言模型(MLLM) 的 幻觉(Hallucination) 与相关技术 (七)
  • Jenkins基于tag的构建