02.二级菜单.html 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. list-style-type: none;
  13. }
  14. a,
  15. img {
  16. border: 0;
  17. text-decoration: none;
  18. }
  19. body {
  20. font: 12px/180% Arial, Helvetica, sans-serif, '新宋体';
  21. }
  22. </style>
  23. <link rel="stylesheet" type="text/css" href="css/sdmenu.css" />
  24. <script src="js/tools.js"></script>
  25. <script>
  26. window.onload = function () {
  27. /**
  28. * 我们的每一个菜单都是一个div
  29. * 当div具有collapsed这个类时,div就是折叠的状态
  30. * 当div没有这个类时,div就是展开的状态
  31. */
  32. /**
  33. * 点击菜单,切换菜单的显示状态
  34. */
  35. //获取所有的class为menuSpan的元素
  36. var menuSpan = document.querySelectorAll('.menuSpan');
  37. // alert(menuSpan.length);//4
  38. //定义一个变量,来保存当前打开的菜单
  39. var openDiv = menuSpan[0].parentNode;
  40. //为span绑定单击响应函数
  41. for (var i = 0; i < menuSpan.length; i++) {
  42. menuSpan[i].onclick = function () {
  43. //this代表当前点击的span
  44. //获取当前span的父元素
  45. var parentDiv = this.parentNode;
  46. //关闭parentDiv
  47. toggleClass(parentDiv , 'collapsed');
  48. //判断openDiv和parentDIV是否相同
  49. if (openDiv != parentDiv && !hasClass(openDiv,'collapsed')) {
  50. //打开菜单以后,应该关闭之前打开的菜单
  51. // addClass(openDiv, 'collapsed');
  52. //为了可以统一处理动画效果,我们希望在这里将addClass改为toggleClass
  53. /**
  54. * 此处toggleClass()不需要有移除的功能
  55. * 所以在判断条件里需再增加一个条件,用来判断是否有collapsed
  56. * !hasClass(openDiv,'collapsed')
  57. */
  58. toggleClass(openDiv,'collapsed');
  59. };
  60. //修改openDiv为当前打开的菜单
  61. openDiv = parentDiv;
  62. };
  63. };
  64. };
  65. </script>
  66. </head>
  67. <body>
  68. <div id="my_menu" class="sdmenu">
  69. <div>
  70. <span class="menuSpan">在线工具</span>
  71. <a href="#">图像优化</a>
  72. <a href="#">收藏夹图标生成器</a>
  73. <a href="#">邮件</a>
  74. <a href="#">htaccess密码</a>
  75. <a href="#">梯度图像</a>
  76. <a href="#">按钮生成器</a>
  77. </div>
  78. <div class="collapsed">
  79. <span class="menuSpan">支持我们</span>
  80. <a href="#">推荐我们</a>
  81. <a href="#">链接我们</a>
  82. <a href="#">网络资源</a>
  83. </div>
  84. <div class="collapsed">
  85. <span class="menuSpan">合作伙伴</span>
  86. <a href="#">JavaScript工具包</a>
  87. <a href="#">CSS驱动</a>
  88. <a href="#">CodingForums</a>
  89. <a href="#">CCS例子</a>
  90. </div>
  91. <div class="collapsed">
  92. <span class="menuSpan">测试电流</span>
  93. <a href="#">Current or not</a>
  94. <a href="#">Current or not</a>
  95. <a href="#">Current or not</a>
  96. <a href="#">Current or not</a>
  97. </div>
  98. </div>
  99. </body>
  100. </html>