【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%" οnmοuseοut="dropdown_dismiss()" cellspacing="0">
    <tr align="center">
        <td οnmοusemοve="dropdown_show(0)" width="20%" >
        下拉菜单1▼
        </td>
        <td οnmοusemοve="dropdown_show(1)" width="20%">
        下拉菜单2▼
        </td>
        <td οnmοusemοve="dropdown_show(2)" width="20%">
        下拉菜单3▼
        </td>
        <td οnmοusemοve="dropdown_show(3)" width="20%">
        下拉菜单4▼
        </td>
        <td  οnmοusemοve="dropdown_show(4)" width="20%">
        下拉菜单5▼
        </td>
    </tr>
    <tr align="center">
        <td οnmοusemοve="dropdown_show(0)" width="20%" >
        <div style="display:none;">
        sssssss<br />
        sssssss<br />
        sssssss<br />
        sssssss<br />
        </div>
        </td>
        <td οnmοusemοve="dropdown_show(1)" width="20%">
        <div style="display:none;">
        sssssss<br />
        sssssss<br />
        sssssss<br />
        sssssss<br />
        </div>
        </td>
        <td οnmοusemοve="dropdown_show(2)" width="20%">
        <div style="display:none;">
        sssssss<br />
        sssssss<br />
        sssssss<br />
        sssssss<br />
        </div>
        </td>
        <td οnmοusemοve="dropdown_show(3)" width="20%">
        <div style="display:none;">
        sssssss<br />
        sssssss<br />
        sssssss<br />
        sssssss<br />
        </div>
        </td>
        <td  οnmοusemοve="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>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值