批改状态:合格
老师批语:目前 , 还没有发现有人自己写出不一样的js, 基本上都是照搬老师的, 说明大家还不够自信, 加油

<div class="nav"><ul><li class="first"><a href="">菜单1</a></li><li><a href="">菜单2</a></li><li><a href="">菜单3</a><ul class="subMenu"><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><a href="">菜单4</a></li><li><a href="">菜单5</a><ul class="subMenu"><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><li><a href="">子菜单</a></li></ul></li></ul></div>
<script>//获取导航菜单const navs = document.querySelectorAll(".nav>ul>li");//获取子菜单const subs = document.querySelectorAll(".subMenu");// 为导航菜单添加监听事件navs.forEach(function (li) {li.addEventListener("mouseover", showSubMenu);li.addEventListener("mouseout", closeSubMenu);});// 为子菜单添加监听事件,解决主导航切换到子菜单,子菜单消失问题subs.forEach(function (ul) {ul.addEventListener("mouseover", function (e) {this.style.display = "block";});ul.addEventListener("mouseout", function (e) {this.style.display = "none";});});function showSubMenu(e) {// 判断当前导航是否有子菜单if (e.target.nextElementSibling != null) {e.target.nextElementSibling.style.display = "block";}}function closeSubMenu(e) {// console.log(e.target);// 判断当前导航是否有子菜单并且当前触发事件的为菜单标签if (e.target.nextElementSibling != null && e.target.nodeName == "A") {e.target.nextElementSibling.style.display = "none";}}</script>
<style>* {padding: 0;margin: 0;}a {text-decoration: none;}li {list-style: none;}.nav > ul > li {float: left;height: 60px;line-height: 60px;color: #fff;position: relative;}.nav > ul > li > a {color: #fff;padding: 0 30px;height: 56px;display: inline-block;}.nav > ul > li > a:hover {border-bottom: 4px solid rgb(13, 151, 0);}.subMenu {display: none;color: #333;position: absolute;width: 200px;border: 1px solid #ddd;text-align: center;top: 60px;left: -50px;background: #f4f4f4;}.subMenu li {float: left;}.subMenu a {float: left;padding: 0 20px;width: 60px;color: #333;}.subMenu a:hover {background: #ddd;}.nav {height: 60px;background: #000;width: 100%;padding-left: 150px;}.first {background: #333;}</style>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号