动画菜单的制作
我想要实现的是一个可以慢慢收起,可以慢慢出现的二级菜单。无非就是绑定事件,然后利用setTimeout方法来改变二级菜单的高度,从而实现上述效果。
本来不难,我却折腾了将近两个小时,把javascript代码改了又改,二级菜单就是不出现。最后,终于发现了问题的症结所在,那就是我开始搭建菜单的时候根本没有给二级菜单的ul标签设置id,可是javascript代码中,我却需要获得这个id才能对菜单进行操作。后来,我加上了这个被疏忽的id,然后菜单的终于正常了。
在这里附上代码:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>我的动画菜单</title> 5 <meta charset="utf-8"> 6 <style type="text/css"> 7 *{ 8 padding:0px; 9 } 10 .meun{ 11 list-style-type: none; 12 font-size:14px; 13 font-weight: bold; 14 } 15 .meun li{ 16 float:left; 17 margin-right:1px; 18 } 19 .meun a{ 20 display: block; 21 color:#fff; 22 background: #000; 23 width:80px; 24 line-height:34px; 25 text-align: center; 26 text-decoration: none; 27 } 28 .meun li a:hover{ 29 color:#000; 30 background: #55f; 31 } 32 .meun ul{ 33 list-style:none; 34 position:absolute; 35 display:none; 36 height:0px; 37 overflow:hidden; 38 } 39 </style> 40 41 <script type="text/javascript"> 42 window.onload = function () { 43 44 //鼠标经过时的效果 45 var Lis = document.getElementsByTagName("li"); 46 for(var i=0; i<Lis.length; i++){ 47 Lis[i].onmouseover = function () { 48 var u = this.getElementsByTagName("ul")[0]; 49 if (u != undefined) 50 {u.style.display="block"; 51 addH(u.id);} 52 } 53 54 Lis[i].onmouseleave = function () { 55 var u = this.getElementsByTagName("ul")[0]; 56 if (u != undefined) 57 subH(u.id); 58 59 } 60 } 61 } 62 function addH(id){ 63 var ulList = document.getElementById(id); 64 var h = ulList.offsetHeight; 65 h=h+1; 66 if(h<=34){ 67 ulList.style.height = h + "px"; 68 setTimeout("addH('" + id + "')", 10); 69 } 70 else{ 71 return; 72 } 73 } 74 function subH(id){ 75 var ulList = document.getElementById(id); 76 var h = ulList.offsetHeight; 77 h=h-1; 78 if(h>=0){ 79 ulList.style.height = h + "px"; 80 setTimeout("subH('" + id + "')", 10); 81 } 82 else{ 83 ulList.style.display="none"; 84 return; 85 } 86 } 87 </script> 88 </head> 89 <body> 90 <ul class="meun"> 91 <li><a href="#">首页</a></li> 92 <li><a href="#">课程大厅</a> 93 <ul id="a"> 94 <li><a href="#">前端</a></li> 95 <li><a href="#">后端</a></li> 96 <li><a href="#">移动端</a></li> 97 </ul> 98 </li> 99 <li><a href="#">学习中心</a></li> 100 <li><a href="#">加入我们</a></li> 101 </ul> 102 </body> 103 </html>

浙公网安备 33010602011771号