日期:2014-05-16  浏览次数:20397 次

使用javascript实现简单菜单效果

可以通过以下几个步骤来实现一个简单的菜单 :

1.将菜单(Menu)用一个表格行来表示,其中只有一个单元格,内容是菜单的名称 ,如:

?

<TR>
         <TD id="td_0" align="middle" width="89%" bgColor=#1f65c2>
         <A href="javascript:Show(0)">基础数据管理</A>  
        </TD>
</TR> 
?

这个地方给表示菜单的单元格也定义了一个ID,这个ID的定义是非常重要的,在整个页面中都是可见的,这样就可以通过ID来

指定其所代表元素的属性。单元格的内容是一个超连接,他指定一个javascript方法,响应点击此菜单后的事件 .

?

2.将此菜单下的所有菜单项紧跟在菜单后放在一个表格行中的仅有的一个单元格中,使用换行来将他们竖起排列

<TR id=tr_0 style="DISPLAY: none;cursor:hand">
          <TD align="middle" bgColor="#4c84ce" height="50">
               <DIV align="center">
                              <A href="" >图书分类信息</A> <BR>
                              <A href="" >藏馆信息</A> <BR>
              </DIV>
        </TD>
</TR>
?

?

这个地方注意,为放置菜单项的这个表格行定义了一个ID,对菜单的展开与折叠将通过这个ID来控制,另外,菜单的初始状态是折叠的,即这一行不可见,所以使用了CSS代码 style="display:none"

?

3.第三步就是整个过程中的重点了,需要写一段js代码来处理菜单的点击事件

<script>	
          var classCount = 4; // 菜单大类的个数
	  function Show(theId) {//参数为菜单的编号,从0开始 
	  	theTr = eval("tr_" + theId);  //生成相应元素的在页面中的ID
              //通过此ID来设置相应元素的CSS属性
              //如果是折叠的,则展开之
		if (theTr.style.display == "none") {
			theTr.style.display = "block";
		}
              //否则折叠之
		else {
			theTr.style.display = "none";
		}
              //遍历关闭之前展开的菜单(对当前菜单不做处理) 
		for (i = 0; i < classCount; i++) {
			if (i == theId)
				continue;
			theTr = eval("tr_" + i);
			theTr.style.display = "none";
		}
	  }
</script>
?

?

?