【JavaScript】利用onmousemove与onmouseout事件制作兼容IE6纯javascript无插件原生态的下拉菜单dropdown
下拉菜单dropdown在很多前端框架里面都有,直接拿来用就可以的,但是框架内的下拉菜单不好改,也很可能会有兼容性问题。
其实这东西完全可以利用HTML+CSS+Javascript去实现的。
效果如下:
其基本制作思想如下:
首先是HTML与CSS的布局,先布置一个table,这个table里面有两行,一行放下拉按钮,一行放下拉菜单,占据整个宽度的100%,单元格之间的行距为0。
因为共5个元素每列占20%。
这里不用div的float去布局,是因为这里使用table的话,这个下拉菜单组非常好控制。根本就不用管下拉菜单所对应的下拉按钮在哪个位置,还要取出对应下拉菜单的坐标等等这样的烦心事。
下拉按钮所对应的下拉菜单一开始是隐藏的。如果鼠标放在下拉菜单与下拉按钮上面,则调用下面的javascript显示下拉菜单的事件,利用onmousemove事件,其实onmouseover也行的。
之后如果鼠标离开这个包含下拉菜单的表格,则利用onmouseout的事件。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>dropdown</title> </head> <body> <table id="dropdown" width="100%" onmouseout="dropdown_dismiss()" cellspacing="0"> <tr align="center"> <td onmousemove="dropdown_show(0)" width="20%" > 下拉菜单1▼ </td> <td onmousemove="dropdown_show(1)" width="20%"> 下拉菜单2▼ </td> <td onmousemove="dropdown_show(2)" width="20%"> 下拉菜单3▼ </td> <td onmousemove="dropdown_show(3)" width="20%"> 下拉菜单4▼ </td> <td onmousemove="dropdown_show(4)" width="20%"> 下拉菜单5▼ </td> </tr> <tr align="center"> <td onmousemove="dropdown_show(0)" width="20%" > <div style="display:none;"> sssssss<br /> sssssss<br /> sssssss<br /> sssssss<br /> </div> </td> <td onmousemove="dropdown_show(1)" width="20%"> <div style="display:none;"> sssssss<br /> sssssss<br /> sssssss<br /> sssssss<br /> </div> </td> <td onmousemove="dropdown_show(2)" width="20%"> <div style="display:none;"> sssssss<br /> sssssss<br /> sssssss<br /> sssssss<br /> </div> </td> <td onmousemove="dropdown_show(3)" width="20%"> <div style="display:none;"> sssssss<br /> sssssss<br /> sssssss<br /> sssssss<br /> </div> </td> <td onmousemove="dropdown_show(4)" width="20%"> <div style="display:none;"> sssssss<br /> sssssss<br /> sssssss<br /> sssssss<br /> </div> </td> </tr> </table> </body> </html>之后是脚本部分,与《【JavaScript】原生态兼容IE6的图片轮播》(点击打开链接)一样,先利用document.getElementById("dropdown").getElementsByTagName("div");取出id=dropdown这个表格的旗下所有div节点,形成一个数组。传过来showname参数,代表要显示id=dropdown这个表格的旗下第showname个div。刚好与下拉菜单所对应。之后,遍历所有div节点,除了第showname个div其余全部隐藏。
dropdown_dismiss函数是鼠标离开表格时的函数,则隐藏所有div。
<script> function dropdown_show(showname){ var dropdownArr=document.getElementById("dropdown").getElementsByTagName("div"); for(var i=0;i<dropdownArr.length;i++){ if(i==showname){ dropdownArr[i].style.display="block"; } else{ dropdownArr[i].style.display="none"; } } } function dropdown_dismiss(){ var dropdownArr=document.getElementById("dropdown").getElementsByTagName("div"); for(var i=0;i<dropdownArr.length;i++){ dropdownArr[i].style.display="none"; } } </script>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。