博主信息
博文 30
粉丝 0
评论 2
访问量 37813
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
导航下拉菜单 定位、事件
司马青衫
原创
933人浏览过

导航下拉菜单 定位、事件

导航下拉菜单

HTML

  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. <link rel="stylesheet" href="style.css" />
  8. </head>
  9. <body>
  10. <nav>
  11. <ul>
  12. <li><a href="#">首页</a></li>
  13. <li>
  14. <a href="">导航1</a>
  15. <dl>
  16. <dd>1项目1</dd>
  17. <dd>1项目2</dd>
  18. <dd>1项目3</dd>
  19. <dd>1项目4</dd>
  20. </dl>
  21. </li>
  22. <li>
  23. <a href="">导航2</a>
  24. <dl>
  25. <dd>2项目1</dd>
  26. <dd>2项目2</dd>
  27. <dd>2项目3</dd>
  28. <dd>2项目4</dd>
  29. </dl>
  30. </li>
  31. <li><a href="">导航3</a></li>
  32. <li><a href="">导航4</a></li>
  33. <li><a href="">导航5</a></li>
  34. </ul>
  35. </nav>
  36. </body>
  37. <script src="script.js"></script>
  38. </html>

CSS

  1. nav {
  2. width: 100%;
  3. height: 60px;
  4. background-color: black;
  5. }
  6. li {
  7. list-style: none;
  8. float: left;
  9. width: 100px;
  10. height: 50px;
  11. line-height: 50px;
  12. position: relative;
  13. }
  14. a {
  15. color: gainsboro;
  16. text-decoration: none;
  17. }
  18. a:hover {
  19. color: white;
  20. }
  21. dl {
  22. display: none;
  23. position: absolute;
  24. top: 50px;
  25. width: 130px;
  26. border: 1px solid black;
  27. }

javascript

  1. const navs = document.querySelectorAll("li");
  2. navs.forEach(function (nav) {
  3. nav.addEventListener("mouseover", showNextItem);
  4. nav.addEventListener("mouseout", closeNextItem);
  5. });
  6. function showNextItem(ev) {
  7. if (ev.target.nextElementSibling != null) {
  8. ev.target.nextElementSibling.style.display = "block";
  9. }
  10. }
  11. function closeNextItem(ev) {
  12. if (ev.target.nodeName === "A" && ev.target.nextElementSibling != null) {
  13. ev.target.nextElementSibling.style.display = "none";
  14. }
  15. }

运行截图

总结

  • 下拉菜单在鼠标移出之后会立马消失
  • 如果下拉菜单中是链接的话就无法点击
  • 需要学习的内容还有很多

定位、事件

  • CSS position 属性
    |属性|描述|
    |—-|—-|
    |absolute|脱离文档流,一定要有一个定位父级作为定位参照物,否则就相对于 body 进行定位|
    |relative|相对于其正常位置进行定位|
    |fixed|元素的位置相对于浏览器窗口是固定位置|

  • 事件 1.事件冒泡:事件最开始由最具体的元素接收 由内向外传播事件 2.事件捕获:与事件冒泡相反 由外向内传播事件

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:你总结中的markdown语法的表格有问题
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学