博客列表 >简单实现下拉菜单的方法

简单实现下拉菜单的方法

浪子修罗记录有趣的事
浪子修罗记录有趣的事原创
2020年06月15日 01:24:30808浏览
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>下拉菜单</title>
  7. <style>
  8. /* 元素样式初始化 */
  9. *. {
  10. margin: 0;
  11. padding: 0;
  12. box-sizing: border-box;
  13. }
  14. a {
  15. /* 颜色为#BBB */
  16. color: #bbb;
  17. /* 去掉下画线连接样式 */
  18. text-decoration: none;
  19. }
  20. #nav {
  21. /* 给ul #nav 一个黑色背景 */
  22. background-color: black;
  23. /* 高度为50PX */
  24. height: 50px;
  25. /* 行高为50px */
  26. line-height: 50px;
  27. }
  28. li {
  29. /* 把li的小黑点去掉 */
  30. list-style: none;
  31. margin: 0 10px;
  32. float: left;
  33. }
  34. #nav > li > a:hover {
  35. /* 给鼠标悬停时连接加上红色 */
  36. color: red;
  37. }
  38. /* 给父级设置为子菜单的定位容器,转为定位元素即可 */
  39. #nav > li {
  40. position: relative;
  41. }
  42. #nav > li > ul {
  43. position: absolute;
  44. top: 50px;
  45. width: 90px;
  46. border: 1px solid #aaa;
  47. }
  48. #nav > li > ul > li a {
  49. display: inline-block;
  50. height: 50px;
  51. color: #444;
  52. }
  53. ul.sub li:hover {
  54. background-color: #eee;
  55. }
  56. /* 初始化时不显示子菜单 */
  57. #nav > li > ul {
  58. display: none;
  59. }
  60. </style>
  61. </head>
  62. <body>
  63. <ul id="nav">
  64. <li><a href="">首页</a></li>
  65. <li><a href="">视频教程</a></li>
  66. <li>
  67. <a href="">资源下载</a>
  68. <ul>
  69. <li><a href="">PHP工具</a></li>
  70. <li><a href="">在线手册</a></li>
  71. <li><a href="">学习课件</a></li>
  72. <li><a href="">网站源码</a></li>
  73. </ul>
  74. </li>
  75. <li><a href="">社区问答</a></li>
  76. <li>
  77. <a href="">技术文章</a>
  78. <ul>
  79. <li><a href="">头条</a></li>
  80. <li><a href="">博博客</a></li>
  81. <li><a href="">学习教程</a></li>
  82. <li><a href="">PHP框架</a></li>
  83. </ul>
  84. </li>
  85. </ul>
  86. </body>
  87. <script>
  88. // 获取所有的主导航
  89. const navs = document.querySelectorAll("#nav > li");
  90. navs.forEach(function (nav) {
  91. // 移入时 显示子菜单
  92. nav.addEventListener("mouseover", showSubMenu);
  93. // 移出时 关掉子菜单
  94. nav.addEventListener("mouseout", closeSubMenu);
  95. });
  96. //显示子菜单
  97. function showSubMenu(ev) {
  98. // 查看当前事件在那里触发的
  99. console.log(ev.target);
  100. // 判断有没有子菜单项
  101. if (ev.target.nextElementSibling !== null) {
  102. //给display:block、显示
  103. ev.target.nextElementSibling.style.display = "block";
  104. }
  105. }
  106. //关掉子菜单
  107. function closeSubMenu(ev) {
  108. // 判断当前触发的标签必须是A标签 判断有没有子菜单项
  109. if (ev.target.nodeName === "A" && ev.target.nextElementSibling !== null) {
  110. ev.target.nextElementSibling.style.display = "none";
  111. }
  112. }
  113. </script>
  114. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议