windows 菜单实现代码收藏

摘自:http://blog.csdn.net/y_mo/archive/2008/08/18/2790411.aspx

 

       系统改造,把原来的功能菜单从新修改成windows系统菜单形式,实现的方法有很多种,

       一是采用,ajax实现,二是采用js+div实现,出于对于功能菜单一般都是不是很变动的数据,据于决定采用,js+div实现此功能.

      网络上也有很多此类的代码,在写时也参考了些这些代码,最终发现有些过于烦琐,一大堆的代码.让我们看起来头痛,管理起来也麻烦.我查了些java对像的相关属性及参考这个源码.写了以下菜单.

 

     发出来在网络上,与大家共享,不足之处,多多指教.

   

    功能要点:

            1.取出页面上一个对像的X,Y位置,用于把DIV显示在此处

            2.利用DIV的属性显示或隐藏DIV

 

    以下为详细代码,可直接运行.

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 1 <html>
 2  <head><title></title>
 3   </head>
 4  <body>
 5    <script language="javascript">
 6   <!--
 7   /**
 8    * 取得X坐标
 9    */
10   function getXPosition(id){
11    var e=document.getElementById(id);
12  var x=e.offsetLeft;
13  while(e=e.offsetParent){
14   x+=e.offsetLeft;
15  }
16  return x;
17    } 
18   /**
19    * 取得Y坐标
20    */ 
21   function getYPosition(id){
22  var e=document.getElementById(id);
23  var y=e.offsetTop;
24  while(e=e.offsetParent){
25   y+=e.offsetTop;
26  }
27  return y;
28    }
29 
30   /**
31    * 显示DIV功能菜单
32    */ 
33   var showMenuId=0;
34   function   popUp(xyId,menuId)   {
35         var x = getXPosition(xyId);
36         var y = getYPosition(xyId)+20;
37    newX   =  x;// document.getElementById(menu).style.left;//window.event.clientX; 
38    newY   =  y;//document.getElementById(menu).style.top;//event.clientY;   
39    menu   =   document.getElementById(menuId);
40    menu.style.visibility   =   "visible"  
41     menu.style.top   =   newY;  
42         menu.style.left   =   newX ;
43         if(showMenuId!="0" && showMenuId!=menuId){
44   popClose(showMenuId);
45         }
46         showMenuId=menuId;   
47   }
48 
49    /**
50    * 关闭DIV功能菜单
51    */ 
52   function popClose(menuId){
53      menu   =   document.getElementById(menuId);
54      menu.style.visibility   =   "hidden"
55   }
56 
57   -->
58   </script>   
59 
60 
61 <table border=1>
62 <tr>
63 <td>
64 <div id="xy1" onclick="popUp('xy1','menu1')" style="height:35px;border:#000000 solid 0px"><href="####">内容管理</a>
65 </div>
66 </td>
67 <td>
68 <div id="xy2" onclick="popUp('xy2','menu2')" style="height:35px;border:#000000 solid 0px"><href="####">系统管理</a>
69 </div>
70 </td>
71 </tr>
72 </table>
73 <!---menu difined--->
74 
75 <div   id='menu1'   onmouseover="popUp('xy1','menu1')" onmouseout = "popClose('menu1')"style=" z-index:3;position:absolute;top:0;left:0;visibility:hidden;padding:3px;border:1px solid #528AC6;background-color:#FFFFFF" >
76  <center><b>内容信息管理</b><center><br>
77  <center><b>内容类别管理</b><center><br>
78 </div>   
79 
80 <div   id='menu2'   onmouseover="popUp('xy2','menu2')" onmouseout = "popClose('menu2')" style=" z-index:3;position:absolute;top:0;left:0;visibility:hidden;padding:3px;border:1px solid #528AC6;background-color:#FFFFFF" >
81  <center><b>内容信息管理</b><center><br>
82  <center><b>内容类别管理</b><center><br>
83 </div>   
84 

转载于:https://www.cnblogs.com/NRabbit/archive/2008/08/19/1736208.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值