islet 发表于 2007-9-15 13:26

[原创]Windows经典菜单框

*/ --------------------------------------------------------------------------------------<br>*/ 出自: 编程中国  http://www.bc-cn.net<br>*/ 作者: islet    E-mail:islet71@163.com    QQ:4238114<br>*/ 时间: 2007-9-15  编程论坛首发<br>*/ 声明: 尊重作者劳动,转载请保留本段文字<br>*/ --------------------------------------------------------------------------------------<br><br>menu.xml:<br>
<DIV class=htmlcode>&lt;menu&gt;<br>    &lt;m1 key="F" text="文件"&gt;<br>        &lt;m2 key="Ctrl+N" href="" text="新建" /&gt;<br>        &lt;m2 key="Ctrl+O" href="" text="打开" /&gt;<br>        &lt;m2 key="Ctrl+S" href="" text="保存" /&gt;<br>        &lt;m2 key="Ctrl+C" href="exit" text="退出" /&gt;<br>    &lt;/m1&gt;<br>    &lt;m1 key="E" text="编辑"&gt;<br>        &lt;m2 key="Ctrl+C" href="" text="复制" /&gt;<br>        &lt;m2 key="Ctrl+X" href="" text="剪切" /&gt;<br>        &lt;m2 key="Ctrl+V" href="" text="粘贴" /&gt;<br>        &lt;m2 key="Ctrl+A" href="" text="全选" /&gt;<br>    &lt;/m1&gt;<br>    &lt;m1 key="V" text="查看"&gt;<br>        &lt;m2 key="" href="" text="大" /&gt;<br>        &lt;m2 key="" href="" text="中" /&gt;<br>        &lt;m2 key="" href="" text="小" /&gt;<br>    &lt;/m1&gt;<br>    &lt;m1 key="T" text="工具"&gt;<br>        &lt;m2 key="" href="" text="大" /&gt;<br>        &lt;m2 key="" href="" text="中" /&gt;<br>        &lt;m2 key="" href="" text="小" /&gt;<br>    &lt;/m1&gt;<br>&lt;/menu&gt;<br></DIV><br>win.html<br>
<DIV class=htmlcode>&lt;html&gt;<br>&lt;title&gt;测试框架&lt;/title&gt;<br>&lt;script language="javascript" src="menu.js"&gt;&lt;/script&gt;<br>&lt;link href="menu.css" rel="stylesheet" type="text/css" /&gt;<br>&lt;body onload="Load()"&gt;<br>&lt;table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0"&gt;<br>  &lt;tr&gt;<br>    &lt;td height="25" valign="middle" bgcolor="#D4D0C8" class="winbord"&gt;&lt;div id="menu" style="width:100%"&gt;&lt;/div&gt;&lt;/td&gt;<br>  &lt;/tr&gt;<br>  &lt;tr onclick="menuFy()"&gt;<br>    &lt;td height="25" bgcolor="#D4D0C8" class="winbord"&gt;&amp;nbsp;&lt;/td&gt;<br>  &lt;/tr&gt;<br>  &lt;tr onclick="menuFy()"&gt;<br>    &lt;td&gt;&amp;nbsp;&lt;/td&gt;<br>  &lt;/tr&gt;<br>&lt;/table&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</DIV><br>menu.js:<br>
<DIV class=htmlcode>var menuClass="menuover";<br>function menuClick(m){<br> menuClass="menudown";<br> menuPlay(m);<br>}<br>function menuOver(m){<br> m.className=menuClass;<br> var o=document.getElementById('menu').childNodes;<br> for(var i=0;i&lt;o.length;i++){<br>  if(o[i]!=m) menuDisplay(o[i]);<br> }<br> if(m.className=="menudown") menuPlay(m);<br>}<br>function menuOut(m){<br> if(m.className=='menuover') m.className='menu';<br>}<br>function menuFy(){<br> menuClass='menuover';<br> var m=document.getElementById('menu').childNodes;<br> for(var i=0;i&lt;m.length;i++){menuDisplay(m[i])}<br>}<br>function menuDisplay(m){<br> m.className='menu';<br> m.childNodes[0].style.display='none';<br>}<br>function menuPlay(m){<br> m.className='menudown';<br> m.childNodes[0].style.display='';<br>}<br>function goTo(o,url){<br> o.blur();<br> if(url=="exit") window.close();<br> return false;<br>}</DIV>
<DIV class=htmlcode>loadXML = function(xmlFile){<br> var xmlDoc;<br> if(window.ActiveXObject){<br>  xmlDoc     = new ActiveXObject('Microsoft.XMLDOM');<br>  xmlDoc.async     = false;<br>  xmlDoc.load(xmlFile);<br> } else if (document.implementation&amp;&amp;document.implementation.createDocument){<br>  xmlDoc     = document.implementation.createDocument('', '', null);<br>  xmlDoc.load(xmlFile);<br> } else {<br>  return null;<br> }<br> return xmlDoc;<br>}</DIV>
<DIV class=htmlcode>checkXMLDocObj= function(xmlFile){<br> var xmlDoc     = loadXML(xmlFile);<br> if(xmlDoc==null){<br>  alert('您的浏览器不支持xml文件读取,推荐使用IE5.0以上可以解决此问题!');<br>  window.location.href='/Index.aspx';<br> }<br> return xmlDoc;<br>}<br>function Load(){<br> var m=document.getElementById('menu'),o=null;<br> var xmlDoc = checkXMLDocObj('menu.xml');<br> var v = xmlDoc.getElementsByTagName('menu/m1');<br> var s="";<br> for(var i=0;i&lt;v.length;i++){<br>  s='&lt;div class="menu" onclick="menuClick(this)" onmouseover="menuOver(this)" onmouseout="menuOut(this)"&gt;';<br>  if(v[i].childNodes){<br>   o=v[i].childNodes;<br>   s += '&lt;div style="display:none;" class="fmenu"&gt;';<br>   for(var j=0;j&lt;o.length;j++)<br>    s += '&lt;div&gt;&lt;a href="to:'+o[j].getAttribute("text")+'" onclick="return goTo(this,\''+o[j].getAttribute("href")+'\')"&gt;'+o[j].getAttribute("text")+'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'+o[j].getAttribute("key")+'&lt;/a&gt;&lt;/div&gt;';<br>   s += '&lt;/div&gt;';<br>  }<br>  s += v[i].getAttribute("text")+'(&lt;u&gt;'+v[i].getAttribute("key")+'&lt;/u&gt;)&lt;/div&gt;';<br>  m.innerHTML += s;<br> }<br>}</DIV><br>menu.css:<br>
<DIV class=htmlcode>body {<br> font-size: 12px;<br> background-color: #FFFFFF;<br> margin: 0px;<br>}<br>.winbord {<br> font-size: 12px;<br> border-bottom-width: 1px;<br> border-bottom-style: solid;<br> border-top-width: 1px;<br> border-right-width: 1px;<br> border-left-width: 1px;<br> border-top-style: solid;<br> border-right-style: solid;<br> border-left-style: solid;<br> border-top-color: #FFFFFF;<br> border-right-color: #808080;<br> border-bottom-color: #808080;<br> border-left-color: #FFFFFF;<br> cursor: default;<br>}<br>.menu {<br> margin: 0px;<br> border: 1px solid #D4D0C8;<br> font-size: 12px;<br> float: left;<br> padding-right: 4px;<br> padding-left: 4px;<br> width: 60;<br> text-align: center;<br> line-height: 21px;<br> cursor: default;<br>}<br>.menuover {<br> margin: 0px;<br> font-size: 12px;<br> border-top-width: 1px;<br> border-right-width: 1px;<br> border-bottom-width: 1px;<br> border-left-width: 1px;<br> border-top-style: solid;<br> border-right-style: solid;<br> border-bottom-style: solid;<br> border-left-style: solid;<br> border-top-color: #FFFFFF;<br> border-right-color: #808080;<br> border-bottom-color: #808080;<br> border-left-color: #FFFFFF;<br> width: 60;<br> text-align: center;<br> height: 21px;<br> line-height: 21px;<br> float: left;<br> padding-right: 4px;<br> padding-left: 4px;<br> cursor: default;<br>}<br>.menudown {<br> margin: 0px;<br> font-size: 12px;<br> border-top-width: 1px;<br> border-right-width: 1px;<br> border-bottom-width: 1px;<br> border-left-width: 1px;<br> border-top-style: solid;<br> border-right-style: solid;<br> border-bottom-style: solid;<br> border-left-style: solid;<br> border-top-color: #808080;<br> border-right-color: #FFFFFF;<br> border-bottom-color: #FFFFFF;<br> border-left-color: #808080;<br> width: 60;<br> text-align: center;<br> height: 21px;<br> line-height: 21px;<br> float: left;<br> padding-right: 4px;<br> padding-left: 4px;<br> cursor: default;<br>}<br>.fmenu {<br> position:absolute;<br> z-index:1;<br> background-color: #D4D0C8;<br> border-top-width: 1px;<br> border-right-width: 1px;<br> border-bottom-width: 1px;<br> border-left-width: 1px;<br> border-top-style: solid;<br> border-right-style: solid;<br> border-bottom-style: solid;<br> border-left-style: solid;<br> border-top-color: #FFFFFF;<br> border-left-color: #FFFFFF;<br> border-right-color: #808080;<br> border-bottom-color: #808080;<br> font-size: 12px;<br> line-height: 20px;<br> margin-top: 20px;<br> margin-left: -9px;<br> text-align: left;<br> white-space:nowrap;<br> padding: 1px;<br>}a:link {<br> color: #000000;<br> text-decoration: none;<br> background-color: #D4D0C8;<br> width: 100%;<br> font-size: 12px;<br> line-height: 20px;<br> padding-right: 15px;<br> padding-left: 15px;<br>}<br>a:visited {<br> color: #000000;<br> text-decoration: none;<br> background-color: #D4D0C8;<br> width: 100%;<br> line-height: 20px;<br> padding-right: 15px;<br> padding-left: 15px;<br>}<br>a:hover {<br> color: #FFFFFF;<br> text-decoration: none;<br> background-color: #363A69;<br> width: 100%;<br> line-height: 20px;<br> padding-right: 15px;<br> padding-left: 15px;<br>}<br></DIV>
[align=right][color=#000066][此贴子已经被作者于2007-9-15 13:31:58编辑过][/color][/align]

islet 发表于 2007-9-15 13:38

[attach]27553[/attach]<BR>

madpbpl 发表于 2007-9-15 16:28

楼上的水平是越来越高了,做的很不错,支持一下!

zacom 发表于 2008-2-18 23:34

头痛的要死

hoddog 发表于 2008-2-28 22:03

不错,我顶

不错,我顶,收藏,经典.

hoddog 发表于 2008-2-28 22:05

不错,我顶

不错,我顶,收藏.经典.

渚薰 发表于 2008-2-29 08:48

现在水平高固然好,我的观点是,不要再重复劳动发明轮子了,留着精力创造更加完善的产品代码吧。如果lz需要用到任何UI的东西,请看看这个www.extjs.com

页: [1]

编程论坛