js导航

jerry thinkphp 2015年11月19日 收藏
根据网友提示导航要由后台来生成,我修改后重新发布。有什么问题请提出来我们共同的进步。
效果如下:

html部分:
  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>01菜单</title>
  5. <link href="Css/01.css" rel="stylesheet" />
  6. </head>
  7. <script type="text/javascript" src="Js/01.js"></script>
  8. <body>
  9. <div id="nav_1">
  10.     <!-- 在下面修改主级菜单信息 -->
  11.     <ul id="uL1">
  12.         <li><a href="#">JavaScript</a></li>
  13.         <li><a href="#">JAVA</a></li>
  14.         <li><a href="#">SSH</a></li>
  15.         <li><a href="#">前段设计</a></li>
  16.         <li><a href="#">PHP</a></li>
  17.         <li><a href="#">ASP</a></li>
  18.         <li><a href="#">THINKPHP</a></li>
  19.     </ul>   
  20.     <!--  这个div用来存放下级导航菜单所要显示的数据 -->
  21.     <div id="nav_m">
  22.             <!-- 以下一个ul对应上面的一个li,例如javascript对应下面第一个ul -->
  23.           <ul>
  24.               <li>Jquery,Ajax,Other,More,MoreAnd</li>
  25.             <li>基础,Swing,Applet,More</li>
  26.             <li>Spring,Habernate,Struct</li>
  27.             <li>HTMl,CSS,SCRIPT</li>
  28.             <li>基础,框架,其他</li>
  29.             <li></li>
  30.             <li>HTMl,CSS,SCRIPT</li>
  31.           </ul>
  32.            <!-- 对应上面下级菜单中的链接,也可以不写 -->
  33.           <ul>
  34.               <li>http://www.cutewindow.com,#,#,#,#</li>
  35.             <li>#,#,#,#</li>
  36.             <li>#,#,#</li>
  37.             <li>#,#,#</li>
  38.             <li>#,#,#</li>
  39.             <li></li>
  40.             <li>#,#,#</li>
  41.           </ul>
  42.     </div>
  43.     <!-- 下拉菜单在此中显示 -->
  44.     <div id="nav_1_js"></div>
  45. </div>
  46. </body>
  47. </html>
Css部分代码:
  1. @charset "utf-8";
  2. /* CSS Document */

  3. #nav_1{
  4.     margin:0 auto 0 auto;
  5.     width:900px;
  6.     height:30px;
  7.     background:#CC6;
  8. }
  9. #nav_1 ul{
  10.     padding-left:100px;
  11. }
  12. #nav_1 ul li{
  13.     padding-top:3px;
  14.     padding-bottom:3px;
  15.     width:100px;
  16.     height:20px;
  17.     float:left;
  18.     background:#9F6;
  19.     list-style:none;
  20.     text-align:center;
  21. }
  22. #nav_1 ul li:hover{
  23.     background:#CC6;
  24. }
  25. #nav_1 ul li a{
  26.     font-family:微软雅黑;
  27.     text-decoration:none;
  28. }
  29. #nav_1_js{
  30.     width:100px;
  31.     margin-left:100px;
  32.     background:#CC6;
  33.     display:none;
  34.     font-family:微软雅黑;
  35. }
  36. #nav_1_js li{
  37.     width:50px;
  38.     font-size:15px;
  39.     font-weight:10px;
  40.     list-style:none;
  41.     margin-left:20px;
  42.     text-align:center;
  43.     border-bottom:1px solid #9FF;
  44. }
  45. #nav_1_js li a{
  46.     text-decoration:none;
  47. }
  48. #nav_1_js li a:hover{
  49.     color:lightyellow;
  50. }
  51. #nav_m{
  52.     display:none;
  53. }
js部分代码:
  1. //制作人yh4494    www.cutewindow.com
  2. var cDan = Array();                //存放下拉菜单数数据
  3. var cLian = Array();            //存放下拉菜单所对应得数组

  4. //从nav_m中加载数组
  5. function loadArr(){
  6.     var oDivLoad = document.getElementById("nav_m");
  7.     var oUl2 = oDivLoad.getElementsByTagName("ul")[0];
  8.     var oUl3 = oDivLoad.getElementsByTagName("ul")[1];
  9.     var aLi4 = oUl2.getElementsByTagName("li");
  10.     var aLi5 = oUl3.getElementsByTagName("li");
  11.     
  12.     //初始化数组
  13.     for(var a = 0;< 7; a++ ){ cDan[a] = new Array(); cLian = new Array(); }
  14.     for(var j = 0;< aLi4.length ;j++){
  15.         cDan[j] = aLi4[j].innerHTML.split(","); 
  16.         cLian[j] = aLi5[j].innerHTML.split(",");
  17.     }
  18. }
  19. window.onload = function(){
  20.     //----------------加载DOM----------------
  21.     var aUl1 = document.getElementById("uL1");
  22.     var oDiv = document.getElementById("nav_1_js");
  23.     var aLi1 = aUl1.getElementsByTagName("li");
  24.     var aLi2 = oDiv.getElementsByTagName("a");
  25.     var t;
  26.     loadArr();
  27.     
  28.     for(var i = 0;< aLi1.length;++){
  29.         aLi1[i].index = i;
  30.         aLi1[i].onmouseover =  function(){
  31.             oDiv.style.display =  "block";
  32.             oDiv.style.marginLeft = "" + (this.index + 1)*100 + "px";
  33.             if(aLi2.length > 0)     del();
  34.             clearTimeout(t);
  35.             for(var j = 0;< cDan[this.index].length;j++){
  36.                 if(>= aLi2.length){
  37.                     //创建节点
  38.                     var aLi3 = document.createElement("li");
  39.                     var aA1 = document.createElement("a");
  40.                     //添加到父类节点中去
  41.                     oDiv.appendChild(aLi3);
  42.                     aLi3.appendChild(aA1);
  43.                     aA1.href = cLian[this.index][j];
  44.                     aA1.innerHTML = cDan[this.index][j];
  45.                     continue;
  46.                 }
  47.                 aLi2[j].innerHTML = cDan[this.index][j];
  48.                 aLi2[j].href = cLian[this.index][j];
  49.             }
  50.         }
  51.         oDiv.onmouseout = aLi1[i].onmouseout = function(){
  52.             t = setTimeout(function Time(){ del(); oDiv.style.display = "none"; },100);
  53.         }
  54.     }
  55.     oDiv.onmouseover =  function(){ clearTimeout(t); }
  56.     //删除所有的节点
  57.     function del(){
  58.     for(var q = 0;< aLi2.length;q++){
  59.         oDiv.removeChild(aLi2[q].parentNode);
  60.     }
  61. }
  62. }

附件菜单修改版.rar ( 2.5 KB 下载:31 次 )