当前页面: 开发资料首页 → Javascript 专题 → 仿Office 2003的工具条
摘要: 仿Office 2003的工具条
<head>
function listbox(listname,buttonname,valuename)
{
this.listname=listname
this.buttonname=buttonname
this.valuename=valuename
}
function listaction(obj,action,showlist,scroll,tw)
{
num=obj.id.charAt(obj.id.length-1)
if (!scroll) {scroll=0}
if (!tw) {tw=105}
listbox=eval(lb[num].listname)
listbutton=eval(lb[num].buttonname)
listvalue=eval(lb[num].valuename)
switch (action)
{
case 0:
listbox.className="getlist";listbutton.className="listover"
break;
case 1:
if (listbox.gf=="0")
{listbox.className="lostlist";listbutton.className="menubar"}
break;
case 2:
for (i=0;i
if (num!=i.toString()){
nlistbox=eval(lb[i].listname)
nlistbutton=eval(lb[i].buttonname)
nlistvalue=eval(lb[i].valuename)
nlistbox.className="lostlist";nlistbutton.className="menubar"
nlistbox.gf="0"
}
}
ShowMenu(listbox,showlist,tw,scroll);listbox.className="getlist";listbox.gf="1"
listnum=num;
break;
}
}
function HideMenu()
{
var mX;
var mY;
var vDiv;
var mDiv;
if (isvisible == true)
{
vDiv = document.all("listDiv");
mX = window.event.clientX + document.body.scrollLeft;
mY = window.event.clientY + document.body.scrollTop;
if ((mX < parseInt(vDiv.style.left)) || (mX > parseInt(vDiv.style.left)+vDiv.offsetWidth) ||
(mY < parseInt(vDiv.style.top)-menu_height) || (mY > parseInt(vDiv.style.top)+vDiv.offsetHeight)) {
vDiv.style.visibility = "hidden";
isvisible = false;
}
}
if (isvisible==false)
{
for (i=0;i
listbox=eval(lb[i].listname)
listbutton=eval(lb[i].buttonname)
listvalue=eval(lb[i].valuename)
listbox.className="lostlist";listbutton.className="menubar"
listbox.gf="0"
}
}
}
function ShowMenu(obj,vMnuCode,tWidth,scroll) {
vMnuCode = "<table id='submenu' cellspacing=0 cellpadding=0 bgcolor=#ffffff border=0 style='width:"+tWidth +
<tr height=23><td nowrap align=left>" +
vMnuCode + "</td></tr></table>";
menu_height = obj.offsetHeight;
menu_width = obj.offsetWidth;
menu_left = obj.offsetLeft + leftMar+2;
menu_top = obj.offsetTop + topMar + menu_height + space-3;
vParent = obj.offsetParent;
while (vParent.tagName.toUpperCase() != "BODY")
{
menu_left += vParent.offsetLeft;
menu_top += vParent.offsetTop;
vParent = vParent.offsetParent;
}
listDiv.innerHTML = vMnuCode;
listDiv.style.top = menu_top;
listDiv.style.left = menu_left;
if (scroll==0) {listDiv.style.overflow="visible";listDiv.style.width=tWidth}
else {listDiv.style.overflow="scroll";listDiv.style.width=tWidth+18}
listDiv.style.visibility = "visible";
var cssopaction=submenu.filters[0].opacity
submenu.filters[0].opacity=0;
submenu.filters[1].Apply();
submenu.filters[0].opacity=100;
submenu.filters[1].Play();
isvisible = true;
}
function menuitem(lightcolor,normalcolor,icon,title,url)
{
this.lightcolor=lightcolor
this.normalcolor=normalcolor
this.icon=icon
this.title=title
this.url=url
}
function bulidmenu(arrayname)
{
var menuarray=eval(arrayname)
menucontent='<table border="0" width="100%">'
for (i=0;i
if (menuarray[i].title!="_line")
{
if (menuarray[i].url!="_disable"){css="getitem"}else{css="lostitem"}
if (menuarray[i].icon.length==0)
{
content='<table cellspacing="0" cellpadding="0"><tr><td style="text-indent:4px" class="'+css+'">'+menuarray[i].title+'</td></tr></table>'
}
else
{
content='<table cellspacing="0" cellpadding="0"><tr><td width="20" nowrap></td><td class="'+css+'">'+menuarray[i].title+'</td></tr></table>'
}
if (menuarray[i].url!="_disable"){
menucontent=menucontent+'<tr><td height=16 style="cursor:default" onmouseover="style.backgroundColor=\''+ menuarray[i].lightcolor+'\'" onmouseout="style.backgroundColor=\''+ menuarray[i].normalcolor+'\'" onclick="Golist(\''+menuarray[i].title+'\')">'+content+'</td></tr>'
}
else
{
menucontent=menucontent+'<tr><td height=16 style="fitler:gray">'+content+'</td></tr>'
}
}
else
{
menucontent=menucontent+'<tr><td height=4></td></tr>'
}
}
menucontent=menucontent+"</table>"
return menucontent
}
function HL_Menu(obj,state)
{
switch (state)
{
case 0:
obj.className="menuover"
break;
case 1:
obj.className="menuup"
break;
}
}
var lb=new Array()
lb[0]=new listbox('listbox0','listbutton0','listvalue0')
lb[1]=new listbox('listbox1','listbutton1','listvalue1')
var list1=new Array()
list1[0]=new menuitem("#B1CBE4","","","ListItem1","")
list1[1]=new menuitem("#B1CBE4","","","ListItem2","")
list1[2]=new menuitem("#B1CBE4","","","ListItem3","")
list1[3]=new menuitem("#B1CBE4","","","ListItem4","")
list1[4]=new menuitem("#B1CBE4","","","ListItem5","")
list1[5]=new menuitem("#B1CBE4","","","ListItem6","")
list1[6]=new menuitem("#B1CBE4","","","ListItem7","")
list1[7]=new menuitem("#B1CBE4","","","ListItem8","")
list1[8]=new menuitem("#B1CBE4","","","ListItem9","")
list1[9]=new menuitem("#B1CBE4","","","ListItem10","")
blist1=bulidmenu("list1")
var list2=new Array()
list2[0]=new menuitem("#B1CBE4","","","字体1","")
list2[1]=new menuitem("#B1CBE4","","","字体2","")
list2[2]=new menuitem("#B1CBE4","","","字体3","")
list2[3]=new menuitem("#B1CBE4","","","字体4","")
list2[4]=new menuitem("#B1CBE4","","","字体5","")
list2[5]=new menuitem("#B1CBE4","","","字体6","")
list2[6]=new menuitem("#B1CBE4","","","字体7","")
list2[7]=new menuitem("#B1CBE4","","","字体8","")
list2[8]=new menuitem("#B1CBE4","","","字体9","")
list2[9]=new menuitem("#B1CBE4","","","字体10","")
blist2=bulidmenu("list2")
function Golist(text)
{
listvalue=eval(lb[listnum].valuename)
listvalue.innerText=text
vDiv = document.all("listDiv");
vDiv.style.visibility = "hidden";
isvisible = false;
}
</script>
</head>
<body onclick="HideMenu()" style="margin:0px" bgcolor="999999">
</td>
</tr>
<tr>
<td>
<table border="1" width="100" id="table32" cellspacing="0" cellpadding="4" bgcolor="#F7F7F7" style="border-collapse: collapse">
<tr>
<td class="menubar">
<table border="0" width="100%" id="table33" cellspacing="0" cellpadding="0">
<tr>
<td width="10" nowrap>
<table border="0" width="2" cellspacing="0" cellpadding="1" id="table34">
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</table></td>
<td width="78" nowrap>
工作之余做了这个小东西
仿Office 2003的工具条,主要尝试不用任何图片(当然不可能把所有按扭都做出来),所有的控件都是用Css和Javascript做的
菜单就不做了,偷懒中
感兴趣的朋友可以和我联系,大家交流交流.
PuterJam@etang.com