博主信息
博文 6
粉丝 0
评论 0
访问量 5140
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
下拉菜单之绝对定位和事件监听
Dobeen
原创
1295人浏览过

预览效果

HTML主体代码

  1. <ul id="nav">
  2. <li><a href="#">首页</a></li>
  3. <li>
  4. <a href="#">技术文章</a>
  5. <ul>
  6. <li><a href="#">PHP</a></li>
  7. <li><a href="#">JavaScript</a></li>
  8. <li><a href="#">Python</a></li>
  9. <li><a href="#">Linux</a></li>
  10. </ul>
  11. </li>
  12. <li><a href="#">博客</a></li>
  13. <li>
  14. <a href="#">资源下载</a>
  15. <ul>
  16. <li><a href="#">学习工具</a></li>
  17. <li><a href="#">开发环境</a></li>
  18. <li><a href="#">编辑器/IDE</a></li>
  19. <li><a href="#">国外资源</a></li>
  20. </ul>
  21. </li>
  22. <li><a href="#">行业资讯</a></li>
  23. </ul>

CSS样式

  1. * { margin: 0; padding: 0; font-size: 14px; font-family: "Microsoft YaHei UI"; }
  2. li { list-style: none; }
  3. #nav { background: #000; height: 50px; line-height: 50px; }
  4. #nav li { float: left; position: relative; }
  5. #nav a { color: #ddd; padding: 0 20px; text-decoration: none; }
  6. #nav a:hover { color: #FFF; }
  7. #nav li ul { display: none; position: absolute; width: 210px; border: 1px solid #ddd; }
  8. #nav li ul a { color: #000; }

通过子菜单的样式,理解了绝对定位、相对定位的概念。

JavaScript代码

  1. const navs = document.querySelectorAll('#nav li');
  2. navs.forEach(function (nav) {
  3. //为没一个导航菜单li添加事件监听
  4. nav.addEventListener('mouseover', showMenu);
  5. nav.addEventListener('mouseout', closeMenu);
  6. })
  7. function showMenu (event) {
  8. //这里需要判断相邻标签是否是子菜单
  9. if(event.target.nextElementSibling !== null && event.target.nextElementSibling.nodeName == 'UL'){
  10. event.target.nextElementSibling.style.display = 'block';
  11. }
  12. }
  13. function closeMenu (event) {
  14. if(event.target.nodeName == 'A' && event.target.nextElementSibling !== null){
  15. event.target.nextElementSibling.style.display = 'none';
  16. }
  17. }

学习总结和感悟

  1. CSS要多理解,配合控制台查看各个元素及布局区域特征、变化,有助于理解;
  2. JS代码还是得多写,多写几遍才能掌握事件监听、冒泡的原理;
  3. 课后练习和作业还是得坚持。
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:现在学习重点不js上
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学