| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4773 人关注过本帖, 2 人收藏
标题:[原创]Windows经典菜单框
只看楼主 加入收藏
islet
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:89
帖 子:6548
专家分:0
注 册:2005-1-28
收藏(2)
 问题点数:0 回复次数:11 
[原创]Windows经典菜单框
*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 http://www.bc-cn.net
*/ 作者: islet E-mail:islet71@163.com QQ:4238114
*/ 时间: 2007-9-15 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------

menu.xml:
<menu>
<m1 key="F" text="文件">
<m2 key="Ctrl+N" href="" text="新建" />
<m2 key="Ctrl+O" href="" text="打开" />
<m2 key="Ctrl+S" href="" text="保存" />
<m2 key="Ctrl+C" href="exit" text="退出" />
</m1>
<m1 key="E" text="编辑">
<m2 key="Ctrl+C" href="" text="复制" />
<m2 key="Ctrl+X" href="" text="剪切" />
<m2 key="Ctrl+V" href="" text="粘贴" />
<m2 key="Ctrl+A" href="" text="全选" />
</m1>
<m1 key="V" text="查看">
<m2 key="" href="" text="大" />
<m2 key="" href="" text="中" />
<m2 key="" href="" text="小" />
</m1>
<m1 key="T" text="工具">
<m2 key="" href="" text="大" />
<m2 key="" href="" text="中" />
<m2 key="" href="" text="小" />
</m1>
</menu>

win.html
<html>
<title>测试框架</title>
<script language="javascript" src="menu.js"></script>
<link href="menu.css" rel="stylesheet" type="text/css" />
<body onload="Load()">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="25" valign="middle" bgcolor="#D4D0C8" class="winbord"><div id="menu" style="width:100%"></div></td>
</tr>
<tr onclick="menuFy()">
<td height="25" bgcolor="#D4D0C8" class="winbord">&nbsp;</td>
</tr>
<tr onclick="menuFy()">
<td>&nbsp;</td>
</tr>
</table>
</body>
</html>

menu.js:
var menuClass="menuover";
function menuClick(m){
menuClass="menudown";
menuPlay(m);
}
function menuOver(m){
m.className=menuClass;
var o=document.getElementById('menu').childNodes;
for(var i=0;i<o.length;i++){
if(o[i]!=m) menuDisplay(o[i]);
}
if(m.className=="menudown") menuPlay(m);
}
function menuOut(m){
if(m.className=='menuover') m.className='menu';
}
function menuFy(){
menuClass='menuover';
var m=document.getElementById('menu').childNodes;
for(var i=0;i<m.length;i++){menuDisplay(m[i])}
}
function menuDisplay(m){
m.className='menu';
m.childNodes[0].style.display='none';
}
function menuPlay(m){
m.className='menudown';
m.childNodes[0].style.display='';
}
function goTo(o,url){
o.blur();
if(url=="exit") window.close();
return false;
}
loadXML = function(xmlFile){
var xmlDoc;
if(window.ActiveXObject){
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xmlDoc.load(xmlFile);
} else if (document.implementation&&document.implementation.createDocument){
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.load(xmlFile);
} else {
return null;
}
return xmlDoc;
}
checkXMLDocObj= function(xmlFile){
var xmlDoc = loadXML(xmlFile);
if(xmlDoc==null){
alert('您的浏览器不支持xml文件读取,推荐使用IE5.0以上可以解决此问题!');
window.location.href='/Index.aspx';
}
return xmlDoc;
}
function Load(){
var m=document.getElementById('menu'),o=null;
var xmlDoc = checkXMLDocObj('menu.xml');
var v = xmlDoc.getElementsByTagName('menu/m1');
var s="";
for(var i=0;i<v.length;i++){
s='<div class="menu" onclick="menuClick(this)" onmouseover="menuOver(this)" onmouseout="menuOut(this)">';
if(v[i].childNodes){
o=v[i].childNodes;
s += '<div style="display:none;" class="fmenu">';
for(var j=0;j<o.length;j++)
s += '<div><a href="to:'+o[j].getAttribute("text")+'" onclick="return goTo(this,\''+o[j].getAttribute("href")+'\')">'+o[j].getAttribute("text")+'&nbsp;&nbsp;&nbsp;&nbsp;'+o[j].getAttribute("key")+'</a></div>';
s += '</div>';
}
s += v[i].getAttribute("text")+'(<u>'+v[i].getAttribute("key")+'</u>)</div>';
m.innerHTML += s;
}
}

menu.css:
body {
font-size: 12px;
background-color: #FFFFFF;
margin: 0px;
}
.winbord {
font-size: 12px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-top-width: 1px;
border-right-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-left-style: solid;
border-top-color: #FFFFFF;
border-right-color: #808080;
border-bottom-color: #808080;
border-left-color: #FFFFFF;
cursor: default;
}
.menu {
margin: 0px;
border: 1px solid #D4D0C8;
font-size: 12px;
float: left;
padding-right: 4px;
padding-left: 4px;
width: 60;
text-align: center;
line-height: 21px;
cursor: default;
}
.menuover {
margin: 0px;
font-size: 12px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: #FFFFFF;
border-right-color: #808080;
border-bottom-color: #808080;
border-left-color: #FFFFFF;
width: 60;
text-align: center;
height: 21px;
line-height: 21px;
float: left;
padding-right: 4px;
padding-left: 4px;
cursor: default;
}
.menudown {
margin: 0px;
font-size: 12px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: #808080;
border-right-color: #FFFFFF;
border-bottom-color: #FFFFFF;
border-left-color: #808080;
width: 60;
text-align: center;
height: 21px;
line-height: 21px;
float: left;
padding-right: 4px;
padding-left: 4px;
cursor: default;
}
.fmenu {
position:absolute;
z-index:1;
background-color: #D4D0C8;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: #FFFFFF;
border-left-color: #FFFFFF;
border-right-color: #808080;
border-bottom-color: #808080;
font-size: 12px;
line-height: 20px;
margin-top: 20px;
margin-left: -9px;
text-align: left;
white-space:nowrap;
padding: 1px;
}a:link {
color: #000000;
text-decoration: none;
background-color: #D4D0C8;
width: 100%;
font-size: 12px;
line-height: 20px;
padding-right: 15px;
padding-left: 15px;
}
a:visited {
color: #000000;
text-decoration: none;
background-color: #D4D0C8;
width: 100%;
line-height: 20px;
padding-right: 15px;
padding-left: 15px;
}
a:hover {
color: #FFFFFF;
text-decoration: none;
background-color: #363A69;
width: 100%;
line-height: 20px;
padding-right: 15px;
padding-left: 15px;
}

[此贴子已经被作者于2007-9-15 13:31:58编辑过]

搜索更多相关主题的帖子: 菜单 Windows 经典 
2007-09-15 13:26
islet
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:89
帖 子:6548
专家分:0
注 册:2005-1-28
收藏
得分:0 
ThYXn4pw.rar (2.69 KB) [原创]Windows经典菜单框


2007-09-15 13:38
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
收藏
得分:0 
楼上的水平是越来越高了,做的很不错,支持一下!
2007-09-15 16:28
zacom
Rank: 2
等 级:论坛游民
威 望:2
帖 子:381
专家分:15
注 册:2007-9-15
收藏
得分:0 
头痛的要死

没有最好只有更好
2008-02-18 23:34
hoddog
Rank: 1
来 自:福建泉州
等 级:新手上路
帖 子:33
专家分:0
注 册:2008-2-18
收藏
得分:0 
不错,我顶
不错,我顶,收藏,经典.
2008-02-28 22:03
hoddog
Rank: 1
来 自:福建泉州
等 级:新手上路
帖 子:33
专家分:0
注 册:2008-2-18
收藏
得分:0 
不错,我顶
不错,我顶,收藏.经典.
2008-02-28 22:05
渚薰
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:1132
专家分:0
注 册:2006-8-6
收藏
得分:0 
现在水平高固然好,我的观点是,不要再重复劳动发明轮子了,留着精力创造更加完善的产品代码吧。如果lz需要用到任何UI的东西,请看看这个www.

个人ajax技术专题站: " target="_blank">http://www. 我不会闲你烦,只会闲你不够烦!
2008-02-29 08:48
duanchangren
Rank: 1
等 级:新手上路
威 望:1
帖 子:252
专家分:0
注 册:2008-7-26
收藏
得分:0 

事在人为
2008-10-23 05:10
mbstorm
Rank: 1
等 级:新手上路
帖 子:166
专家分:0
注 册:2008-10-31
收藏
得分:0 
看不懂
2008-11-03 21:47
mbstorm
Rank: 1
等 级:新手上路
帖 子:166
专家分:0
注 册:2008-10-31
收藏
得分:0 
我收藏了
2008-11-03 21:47
快速回复:[原创]Windows经典菜单框
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020172 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved