导读:
如何用JS制作至少三级的下拉式(导航)菜单?
并且要在IE/Netscape等一些常用浏览器中也有效果!
越简单,越好用.越好!(最好能设置菜单的颜色颜色,带框)
问题点数:50、回复次数:17Top
1 楼 wsh236(与龙同在)回复于 2005-08-27 21:22:58 得分 3
我想给你源码呢!可是说我的太多不让回复!晕!只好给你个网址了!
http://www.51windows.net/myjs/?u=/hw/asp/jsview.asp?id=118Top
2 楼 qqvip2(qqvip)回复于 2005-08-27 21:38:50 得分 0
感谢" wsh236(与龙同在)" 的热心参与我问题的回答.
可惜的是,这菜单既不是三层的(只是二层的)菜单,又不能在netscape下正常使用,三个要求中:只有是下拉式菜单符合了要求...所以....
不好意思,我还是用不上这代码,不过还是感谢你的热心回答!Top
3 楼 gaofeng2000(高老师)回复于 2005-08-28 00:17:11 得分 3
关注Top
4 楼 qqvip2(qqvip)回复于 2005-08-28 07:52:40 得分 0
唉,求答案!Top
5 楼 syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2005-08-28 08:34:07 得分 20
请问你在什么地方看见你说的这种菜单了吗?
如果看见了,查看它的源码就行了,我是没代码给你,因为学过软件界面设计的人都知道,关于菜单有个基本准则“前2级是菜单,第3级以后是用弹出的对话窗口”3级以上的菜单是不合格的设计,因为不符合容易使用的原则。延时少了太乱,多了太慢。
不妨看看你熟悉的软件,那么大一套Office你看见第3级了吗?所有要求第3级操作的都是弹出个窗口给你。再看看操作复杂点的,比如AutoCAD,3DMax,Photoshop,那些需要复杂操作的地方你看见第3级了吗?有机会给你看见第3级的都是些不注意界面细节的小公司的东西。
再考虑一下吧,楼主。虽然我举的例子都不是WebApp的,不过道理是一样的。Top
6 楼 qqvip2(qqvip)回复于 2005-08-30 12:40:57 得分 0
有看过3级的(所指就是两个子弹单的呀)
但都只能在ie下使用!Top
7 楼 qqvip2(qqvip)回复于 2005-08-30 12:42:19 得分 0
子菜单.(如:开始>程序>附件>娱乐>媒体播放器,这样子的)Top
8 楼 ip928(赵晓骏)回复于 2005-08-30 12:57:10 得分 3
syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)
说的很有道理,学到东西了Top
9 楼 syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2005-08-31 07:52:53 得分 21
如果你指的是2级子菜单。如果你已经看见这样的菜单,查看他的源码,拿下来,自己修改一下。
对于流,可能存在不同浏览器的显示结果完全不同,换成内框。
对于document.all.######因为在非ie内核的浏览器上没有all对象,利用aspx一般只有一个form并且一般所有控件都在这个form里,可以把这个form的id设为all,投机取巧了点,不过实用。
对于有些浏览器对控件认id有些认name,只要所有地方都给它2个。
。。。。。。其他的类似处理。
另外,不可能要求在所有浏览器都正常,只要IE,NN,FF等主流浏览器的最新2到3个版本正常就差不多了,使用其他内核浏览器的人反正他们也习惯了看哪里都不正常,不会怪你的。呵呵,就好象如果有人用的是UNIX上那个可以直接发送到新闻组那个浏览器(UNIX下现在还有些人用)忘记叫什么了,连鼠标都不支持,全是用键盘,点超连接是用组合键(好象是shift+右方向键),也不支持js。。。对于那样的浏览器,你急也没办法。对不对?Top
10 楼 singlepine(小山)回复于 2005-09-20 13:46:06 得分 0
导航栏菜单
<script language="JavaScript">
var mmenus = new Array();
var misShow = new Boolean();
misShow=false;
var misdown = new Boolean();
misdown=false;
var mnumberofsub=0;
var musestatus=false;
var mpopTimer = 0;
mmenucolor='#89CB10';mfontcolor='MenuText';mmenuoutcolor='#ADEF34';mmenuincolor='#B5E74E';mmenuoutbordercolor='#ECFA3A';mmenuinbordercolor='#5A2614';mmidoutcolor='#A9DA1D';mmidincolor='#799310';mmenuovercolor='#004080';mitemedge='0';msubedge='1';mmenuunitwidth=66;mmenuitemwidth=140;mmenuheight=25;mmenuwidth='100%';mmenuadjust=0;mmenuadjustV=0;mfonts='font-family: 宋体; font-size: 9pt; color: MenuText; ';mcursor='hand';
var swipeSteps = 4;
var swipemsec = 25;
var swipeArray = new Array();
function swipe(el, dir, steps, msec) {
if (steps == null) steps = swipeSteps;
if (msec == null) msec = swipemsec;
if (el.swipeIndex == null)
el.swipeIndex = swipeArray.length;
if (el.swipeTimer != null)
window.clearTimeout(el.swipeTimer);
swipeArray[el.swipeIndex] = el;
el.style.clip = "rect(-99999, 99999, 99999, -99999)";
if (el.swipeCounter == null || el.swipeCounter == 0) {
el.orgLeft = el.offsetLeft;
el.orgTop = el.offsetTop;
el.orgWidth = el.offsetWidth;
el.orgHeight = el.offsetHeight;
}
el.swipeCounter = steps;
el.style.clip = "rect(0,0,0,0)";
window.setTimeout("repeat(" + dir + "," + el.swipeIndex + "," + steps + "," + msec + ")", msec);
}
function repeat(dir, index, steps, msec) {
el = swipeArray[index];
var left = el.orgLeft;
var top = el.orgTop;
var width = el.orgWidth;
var height = el.orgHeight;
if (el.swipeCounter == 0) {
el.style.clip = "rect(-99999, 99999, 99999, -99999)";
return;
}
else {
el.swipeCounter--;
el.style.visibility = "visible";
switch (dir) {
case 2:
el.style.clip = "rect(" + height*el.swipeCounter/steps + "," + width + "," + height + "," + 0 + ")";
el.style.top = top - height*el.swipeCounter/steps;
break;
case 8:
el.style.clip = "rect(" + 0 + "," + width + "," + height*(steps-el.swipeCounter)/steps + "," + 0 + ")";
el.style.top = top + height*el.swipeCounter/steps;
break;
case 6:
el.style.clip = "rect(" + 0 + "," + width + "," + height + "," + width*(el.swipeCounter)/steps + ")";
el.style.left = left - width*el.swipeCounter/steps;
break;
case 4:
el.style.clip = "rect(" + 0 + "," + width*(swipeSteps - el.swipeCounter)/steps + "," + height + "," + 0 + ")";
el.style.left = left + width*el.swipeCounter/steps;
break;
}
el.swipeTimer = window.setTimeout("repeat(" + dir + "," + index + "," + steps + "," + msec + ")", msec);
}
}
var mtmpleft="";
var mtmptop="";
function hideSwipe(el) {
window.clearTimeout(el.swipeTimer);
el.style.visibility = "hidden";
el.style.clip = "rect(-99999, 99999, 99999, -99999)";
el.swipeCounter = 0;
if(mtmpleft!="")el.style.left = mtmpleft;
if(mtmptop!="")el.style.top = mtmptop;
}
function stoperror(){
return true;
}
window.οnerrοr=stoperror;
function mpopOut() {
mpopTimer = setTimeout('mallhide()', 500);
}
function getReal(el, type, value) {
temp = el;
while ((temp != null) && (temp.tagName != "BODY")) {
if (eval("temp." + type) == value) {
el = temp;
return el;
}
temp = temp.parentElement;
}
return el;
}
function mMenuRegister(menu)
{
mmenus[mmenus.length] = menu
return (mmenus.length - 1)
}
function mMenuItem(caption,command,target,isline,statustxt,level,img,sizex,sizey,pos){
this.items = new Array();
this.caption=caption;
this.command=command;
this.target=target;
this.isline=isline;
this.statustxt=statustxt;
if(level!=null){mnumberofsub++;
this.hasc=mnumberofsub;}
this.level=level;
this.img=img;
this.sizex=sizex;
this.sizey=sizey;
this.pos=pos;
}
function mMenu(caption,command,target,img,sizex,sizey,pos){
this.items = new Array();
this.caption=caption;
this.command=command;
this.target=target;
this.img=img;
this.sizex=sizex;
this.sizey=sizey;
this.pos=pos;
this.id=mMenuRegister(this);
}
function mMenuAddItem(item)
{
this.items[this.items.length] = item
item.parent = this.id;
this.children=true;
}
mMenu.prototype.addItem = mMenuAddItem;
mMenuItem.prototype.addsubItem = mMenuAddItem;
function mtoout(src){
src.style.borderLeftColor=mmenuoutbordercolor;
src.style.borderRightColor=mmenuinbordercolor;
src.style.borderTopColor=mmenuoutbordercolor;
src.style.borderBottomColor=mmenuinbordercolor;
src.style.backgroundColor=mmenuoutcolor;
src.style.color=mmenuovercolor;
}Top
11 楼 singlepine(小山)回复于 2005-09-20 13:47:19 得分 0
function mtoin(src){
src.style.borderLeftColor=mmenuinbordercolor;
src.style.borderRightColor=mmenuoutbordercolor;
src.style.borderTopColor=mmenuinbordercolor;
src.style.borderBottomColor=mmenuoutbordercolor;
src.style.backgroundColor=mmenuincolor;
src.style.color=mmenuovercolor;
}
function mnochange(src){
src.style.borderLeftColor=mmenucolor;
src.style.borderRightColor=mmenucolor;
src.style.borderTopColor=mmenucolor;
src.style.borderBottomColor=mmenucolor;
src.style.backgroundColor=';
src.style.color=mfontcolor;
}
function mallhide(){
for(var nummenu=0;nummenu
var themenu=document.all['mMenu'+nummenu]
var themenudiv=document.all['mmenudiv'+nummenu]
mnochange(themenu);
mmenuhide(themenudiv);
}
for(nummenu=1;nummenu<=mnumberofsub;nummenu++){
var thesub=document.all['msubmenudiv'+nummenu]
msubmenuhide(thesub);
mnochange(document.all['mp'+nummenu]);
document.all["mitem"+nummenu].style.color=mfontcolor;
}
}
function mmenuhide(menuid){
menuid.style.filter='Alpha(Opacity=100)';
hideSwipe(menuid);
misShow=false;
}
function msubmenuhide(menuid){
menuid.style.filter='Alpha(Opacity=100)';
menuid.style.visibility='hidden';
}
function mmenushow(menuid,pid){
menuid.style.filter='Alpha(Opacity=80)';
menuid.style.left=mposflag.offsetLeft+pid.offsetLeft+mmenuadjust;menuid.style.top=mposflag.offsetTop+mmenutable.offsetHeight+mmenuadjustV;
if(mmenuitemwidth+parseInt(menuid.style.left)>document.body.clientWidth+document.body.scrollLeft)
menuid.style.left=document.body.clientWidth+document.body.scrollLeft-mmenuitemwidth;
mtmpleft=menuid.style.left;mtmptop=menuid.style.top;swipe(menuid,2,4);
misShow=true;
}
function mshowsubmenu(menuid,pid,rid){
menuid.style.filter='Alpha(Opacity=80)';
menuid.style.left=pid.offsetWidth+rid.offsetLeft;
menuid.style.top=pid.offsetTop+rid.offsetTop-3;
if(mmenuitemwidth+parseInt(menuid.style.left)>document.body.clientWidth+document.body.scrollLeft)
menuid.style.left=document.body.clientWidth+document.body.scrollLeft-mmenuitemwidth;
menuid.style.visibility='visible';
}
function mmenu_over(menuid,x){
toel = getReal(window.event.toElement, "className", "coolButton");
fromel = getReal(window.event.fromElement, "className", "coolButton");
if (toel == fromel) return;
if(x<0){
misShow = false;
mallhide();
mtoout(eval("mMenu"+x));
}else{
mallhide();
mtoin(eval("mMenu"+x));
mmenushow(menuid,eval("mMenu"+x));
}
clearTimeout(mpopTimer);
}
function mmenu_out(x){
toel = getReal(window.event.toElement, "className", "coolButton");
fromel = getReal(window.event.fromElement, "className", "coolButton");
if (toel == fromel) return;
if (misShow){
mtoin(eval("mMenu"+x));
}else{
mnochange(eval("mMenu"+x));
}
mpopOut()
}
function mmenu_down(menuid,x){
if(misShow){
mmenuhide(menuid);
mtoout(eval("mMenu"+x));
}
else{
mtoin(eval("mMenu"+x));
mmenushow(menuid,eval("mMenu"+x));
misdown=true;
}
}
function mmenu_up(){
misdown=false;
}
function mmenuitem_over(menuid,item,x,j,i){
toel = getReal(window.event.toElement, "className", "coolButton");
fromel = getReal(window.event.fromElement, "className", "coolButton");
if (toel == fromel) return;
srcel = getReal(window.event.srcElement, "className", "coolButton");
for(nummenu=1;nummenu<=mnumberofsub;nummenu++){
var thesub=document.all['msubmenudiv'+nummenu]
if(!(menuid==thesub||menuid.style.tag>=thesub.style.tag)){
msubmenuhide(thesub);
mnochange(document.all['mp'+nummenu]);
document.all["mitem"+nummenu].style.color=mfontcolor;
}
}
if(item)document.all["mitem"+item].style.color=mmenuovercolor;
if(misdown||item){
mtoin(srcel);
}
else{
mtoout(srcel);
}
if(x==-1)mthestatus=eval("msub"+j).items[i].statustxt;
if(j==-1)mthestatus=mmenus[x].items[i].statustxt;
if(mthestatus!=""){
musestatus=true;
window.status=mthestatus;
}
clearTimeout(mpopTimer);
}
function mmenuitem_out(hassub){
toel = getReal(window.event.toElement, "className", "coolButton");
fromel = getReal(window.event.fromElement, "className", "coolButton");
if (toel == fromel) return;
srcel = getReal(window.event.srcElement, "className", "coolButton");
if(!hassub)mnochange(srcel);
if(musestatus)window.status="";
mpopOut()
}
function mmenuitem_down(){
srcel = getReal(window.event.srcElement, "className", "coolButton");
mtoin(srcel)
misdown=true;
}
function mmenuitem_up(){
srcel = getReal(window.event.srcElement, "className", "coolButton");
mtoout(srcel)
misdown=false;
}
function mexec3(j,i){
var cmd;
if(eval("msub"+j).items[i].target=="blank"){
cmd = "window.open('"+eval("msub"+j).items[i].command+"')";
}else{
cmd = eval("msub"+j).items[i].target+".location=/""+eval("msub"+j).items[i].command+"/"";
}
eval(cmd);
}
function mexec2(x){
var cmd;
if(mmenus[x].target=="blank"){
cmd = "window.open('"+mmenus[x].command+"')";
}else{
cmd = mmenus[x].target+".location=/""+mmenus[x].command+"/"";
}
eval(cmd);
}
function mexec(x,i){
var cmd;
if(mmenus[x].items[i].target=="blank"){
cmd = "window.open('"+mmenus[x].items[i].command+"')";
}else{
cmd = mmenus[x].items[i].target+".location=/""+mmenus[x].items[i].command+"/"";
}
eval(cmd);
}Top
12 楼 singlepine(小山)回复于 2005-09-20 13:48:53 得分 0
function mbody_click(){
if (misShow){
srcel = getReal(window.event.srcElement, "className", "coolButton");
for(var x=0;x<=mmenus.length;x++){
if(srcel.id=="mMenu"+x)
return;
}
for(x=1;x<=mnumberofsub;x++){
if(srcel.id=="mp"+x)
return;
}
mallhide();
}
}
document.οnclick=mbody_click;
function mwritetodocument(){
var mwb=1;
var stringx='
var thismenu=mmenus[x];
var imgsize="";
if(thismenu.sizex!="0"||thismenu.sizey!="0")imgsize=" width="+thismenu.sizex+" height="+thismenu.sizey;
var ifspace="";
if(thismenu.caption!="")ifspace=" ";
stringx += "
<> ' style="filter:Alpha(Opacity=80);cursor:'+mcursor+';'+mfonts+ ' border-left: '+mwb+'px solid '+mmenuoutbordercolor+';'+ ' border-right: '+mwb+'px solid '+mmenuinbordercolor+'; '+ 'border-top: '+mwb+'px solid '+mmenuoutbordercolor+'; '+ 'border-bottom: '+mwb+'px solid '+mmenuinbordercolor+'; padding:0px">
' for(var x=0;x
"; }else if(thismenu.pos=="1"){ stringx += " align=center>"+thismenu.caption+ifspace+""; }else if(thismenu.pos=="2"){ stringx += " align=center background='"+thismenu.img+"'> "+thismenu.caption+" "; }else{ stringx += " align=center> "+thismenu.caption+" "; } stringx += ""; } stringx+="
";Top
13 楼 singlepine(小山)回复于 2005-09-20 13:50:48 得分 0
for(var x=0;x
thismenu=mmenus[x];
if(x<0){
stringx+='
如何用JS制作至少三级的下拉式(导航)菜单?
并且要在IE/Netscape等一些常用浏览器中也有效果!
越简单,越好用.越好!(最好能设置菜单的颜色颜色,带框)
问题点数:50、回复次数:17Top
1 楼 wsh236(与龙同在)回复于 2005-08-27 21:22:58 得分 3
我想给你源码呢!可是说我的太多不让回复!晕!只好给你个网址了!
http://www.51windows.net/myjs/?u=/hw/asp/jsview.asp?id=118Top
2 楼 qqvip2(qqvip)回复于 2005-08-27 21:38:50 得分 0
感谢" wsh236(与龙同在)" 的热心参与我问题的回答.
可惜的是,这菜单既不是三层的(只是二层的)菜单,又不能在netscape下正常使用,三个要求中:只有是下拉式菜单符合了要求...所以....
不好意思,我还是用不上这代码,不过还是感谢你的热心回答!Top
3 楼 gaofeng2000(高老师)回复于 2005-08-28 00:17:11 得分 3
关注Top
4 楼 qqvip2(qqvip)回复于 2005-08-28 07:52:40 得分 0
唉,求答案!Top
5 楼 syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2005-08-28 08:34:07 得分 20
请问你在什么地方看见你说的这种菜单了吗?
如果看见了,查看它的源码就行了,我是没代码给你,因为学过软件界面设计的人都知道,关于菜单有个基本准则“前2级是菜单,第3级以后是用弹出的对话窗口”3级以上的菜单是不合格的设计,因为不符合容易使用的原则。延时少了太乱,多了太慢。
不妨看看你熟悉的软件,那么大一套Office你看见第3级了吗?所有要求第3级操作的都是弹出个窗口给你。再看看操作复杂点的,比如AutoCAD,3DMax,Photoshop,那些需要复杂操作的地方你看见第3级了吗?有机会给你看见第3级的都是些不注意界面细节的小公司的东西。
再考虑一下吧,楼主。虽然我举的例子都不是WebApp的,不过道理是一样的。Top
6 楼 qqvip2(qqvip)回复于 2005-08-30 12:40:57 得分 0
有看过3级的(所指就是两个子弹单的呀)
但都只能在ie下使用!Top
7 楼 qqvip2(qqvip)回复于 2005-08-30 12:42:19 得分 0
子菜单.(如:开始>程序>附件>娱乐>媒体播放器,这样子的)Top
8 楼 ip928(赵晓骏)回复于 2005-08-30 12:57:10 得分 3
syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)
说的很有道理,学到东西了Top
9 楼 syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2005-08-31 07:52:53 得分 21
如果你指的是2级子菜单。如果你已经看见这样的菜单,查看他的源码,拿下来,自己修改一下。
对于流,可能存在不同浏览器的显示结果完全不同,换成内框。
对于document.all.######因为在非ie内核的浏览器上没有all对象,利用aspx一般只有一个form并且一般所有控件都在这个form里,可以把这个form的id设为all,投机取巧了点,不过实用。
对于有些浏览器对控件认id有些认name,只要所有地方都给它2个。
。。。。。。其他的类似处理。
另外,不可能要求在所有浏览器都正常,只要IE,NN,FF等主流浏览器的最新2到3个版本正常就差不多了,使用其他内核浏览器的人反正他们也习惯了看哪里都不正常,不会怪你的。呵呵,就好象如果有人用的是UNIX上那个可以直接发送到新闻组那个浏览器(UNIX下现在还有些人用)忘记叫什么了,连鼠标都不支持,全是用键盘,点超连接是用组合键(好象是shift+右方向键),也不支持js。。。对于那样的浏览器,你急也没办法。对不对?Top
10 楼 singlepine(小山)回复于 2005-09-20 13:46:06 得分 0
<script language="JavaScript">
var mmenus = new Array();
var misShow = new Boolean();
misShow=false;
var misdown = new Boolean();
misdown=false;
var mnumberofsub=0;
var musestatus=false;
var mpopTimer = 0;
mmenucolor='#89CB10';mfontcolor='MenuText';mmenuoutcolor='#ADEF34';mmenuincolor='#B5E74E';mmenuoutbordercolor='#ECFA3A';mmenuinbordercolor='#5A2614';mmidoutcolor='#A9DA1D';mmidincolor='#799310';mmenuovercolor='#004080';mitemedge='0';msubedge='1';mmenuunitwidth=66;mmenuitemwidth=140;mmenuheight=25;mmenuwidth='100%';mmenuadjust=0;mmenuadjustV=0;mfonts='font-family: 宋体; font-size: 9pt; color: MenuText; ';mcursor='hand';
var swipeSteps = 4;
var swipemsec = 25;
var swipeArray = new Array();
function swipe(el, dir, steps, msec) {
if (steps == null) steps = swipeSteps;
if (msec == null) msec = swipemsec;
if (el.swipeIndex == null)
el.swipeIndex = swipeArray.length;
if (el.swipeTimer != null)
window.clearTimeout(el.swipeTimer);
swipeArray[el.swipeIndex] = el;
el.style.clip = "rect(-99999, 99999, 99999, -99999)";
if (el.swipeCounter == null || el.swipeCounter == 0) {
el.orgLeft = el.offsetLeft;
el.orgTop = el.offsetTop;
el.orgWidth = el.offsetWidth;
el.orgHeight = el.offsetHeight;
}
el.swipeCounter = steps;
el.style.clip = "rect(0,0,0,0)";
window.setTimeout("repeat(" + dir + "," + el.swipeIndex + "," + steps + "," + msec + ")", msec);
}
function repeat(dir, index, steps, msec) {
el = swipeArray[index];
var left = el.orgLeft;
var top = el.orgTop;
var width = el.orgWidth;
var height = el.orgHeight;
if (el.swipeCounter == 0) {
el.style.clip = "rect(-99999, 99999, 99999, -99999)";
return;
}
else {
el.swipeCounter--;
el.style.visibility = "visible";
switch (dir) {
case 2:
el.style.clip = "rect(" + height*el.swipeCounter/steps + "," + width + "," + height + "," + 0 + ")";
el.style.top = top - height*el.swipeCounter/steps;
break;
case 8:
el.style.clip = "rect(" + 0 + "," + width + "," + height*(steps-el.swipeCounter)/steps + "," + 0 + ")";
el.style.top = top + height*el.swipeCounter/steps;
break;
case 6:
el.style.clip = "rect(" + 0 + "," + width + "," + height + "," + width*(el.swipeCounter)/steps + ")";
el.style.left = left - width*el.swipeCounter/steps;
break;
case 4:
el.style.clip = "rect(" + 0 + "," + width*(swipeSteps - el.swipeCounter)/steps + "," + height + "," + 0 + ")";
el.style.left = left + width*el.swipeCounter/steps;
break;
}
el.swipeTimer = window.setTimeout("repeat(" + dir + "," + index + "," + steps + "," + msec + ")", msec);
}
}
var mtmpleft="";
var mtmptop="";
function hideSwipe(el) {
window.clearTimeout(el.swipeTimer);
el.style.visibility = "hidden";
el.style.clip = "rect(-99999, 99999, 99999, -99999)";
el.swipeCounter = 0;
if(mtmpleft!="")el.style.left = mtmpleft;
if(mtmptop!="")el.style.top = mtmptop;
}
function stoperror(){
return true;
}
window.οnerrοr=stoperror;
function mpopOut() {
mpopTimer = setTimeout('mallhide()', 500);
}
function getReal(el, type, value) {
temp = el;
while ((temp != null) && (temp.tagName != "BODY")) {
if (eval("temp." + type) == value) {
el = temp;
return el;
}
temp = temp.parentElement;
}
return el;
}
function mMenuRegister(menu)
{
mmenus[mmenus.length] = menu
return (mmenus.length - 1)
}
function mMenuItem(caption,command,target,isline,statustxt,level,img,sizex,sizey,pos){
this.items = new Array();
this.caption=caption;
this.command=command;
this.target=target;
this.isline=isline;
this.statustxt=statustxt;
if(level!=null){mnumberofsub++;
this.hasc=mnumberofsub;}
this.level=level;
this.img=img;
this.sizex=sizex;
this.sizey=sizey;
this.pos=pos;
}
function mMenu(caption,command,target,img,sizex,sizey,pos){
this.items = new Array();
this.caption=caption;
this.command=command;
this.target=target;
this.img=img;
this.sizex=sizex;
this.sizey=sizey;
this.pos=pos;
this.id=mMenuRegister(this);
}
function mMenuAddItem(item)
{
this.items[this.items.length] = item
item.parent = this.id;
this.children=true;
}
mMenu.prototype.addItem = mMenuAddItem;
mMenuItem.prototype.addsubItem = mMenuAddItem;
function mtoout(src){
src.style.borderLeftColor=mmenuoutbordercolor;
src.style.borderRightColor=mmenuinbordercolor;
src.style.borderTopColor=mmenuoutbordercolor;
src.style.borderBottomColor=mmenuinbordercolor;
src.style.backgroundColor=mmenuoutcolor;
src.style.color=mmenuovercolor;
}Top
11 楼 singlepine(小山)回复于 2005-09-20 13:47:19 得分 0
function mtoin(src){
src.style.borderLeftColor=mmenuinbordercolor;
src.style.borderRightColor=mmenuoutbordercolor;
src.style.borderTopColor=mmenuinbordercolor;
src.style.borderBottomColor=mmenuoutbordercolor;
src.style.backgroundColor=mmenuincolor;
src.style.color=mmenuovercolor;
}
function mnochange(src){
src.style.borderLeftColor=mmenucolor;
src.style.borderRightColor=mmenucolor;
src.style.borderTopColor=mmenucolor;
src.style.borderBottomColor=mmenucolor;
src.style.backgroundColor=';
src.style.color=mfontcolor;
}
function mallhide(){
for(var nummenu=0;nummenu
var themenu=document.all['mMenu'+nummenu]
var themenudiv=document.all['mmenudiv'+nummenu]
mnochange(themenu);
mmenuhide(themenudiv);
}
for(nummenu=1;nummenu<=mnumberofsub;nummenu++){
var thesub=document.all['msubmenudiv'+nummenu]
msubmenuhide(thesub);
mnochange(document.all['mp'+nummenu]);
document.all["mitem"+nummenu].style.color=mfontcolor;
}
}
function mmenuhide(menuid){
menuid.style.filter='Alpha(Opacity=100)';
hideSwipe(menuid);
misShow=false;
}
function msubmenuhide(menuid){
menuid.style.filter='Alpha(Opacity=100)';
menuid.style.visibility='hidden';
}
function mmenushow(menuid,pid){
menuid.style.filter='Alpha(Opacity=80)';
menuid.style.left=mposflag.offsetLeft+pid.offsetLeft+mmenuadjust;menuid.style.top=mposflag.offsetTop+mmenutable.offsetHeight+mmenuadjustV;
if(mmenuitemwidth+parseInt(menuid.style.left)>document.body.clientWidth+document.body.scrollLeft)
menuid.style.left=document.body.clientWidth+document.body.scrollLeft-mmenuitemwidth;
mtmpleft=menuid.style.left;mtmptop=menuid.style.top;swipe(menuid,2,4);
misShow=true;
}
function mshowsubmenu(menuid,pid,rid){
menuid.style.filter='Alpha(Opacity=80)';
menuid.style.left=pid.offsetWidth+rid.offsetLeft;
menuid.style.top=pid.offsetTop+rid.offsetTop-3;
if(mmenuitemwidth+parseInt(menuid.style.left)>document.body.clientWidth+document.body.scrollLeft)
menuid.style.left=document.body.clientWidth+document.body.scrollLeft-mmenuitemwidth;
menuid.style.visibility='visible';
}
function mmenu_over(menuid,x){
toel = getReal(window.event.toElement, "className", "coolButton");
fromel = getReal(window.event.fromElement, "className", "coolButton");
if (toel == fromel) return;
if(x<0){
misShow = false;
mallhide();
mtoout(eval("mMenu"+x));
}else{
mallhide();
mtoin(eval("mMenu"+x));
mmenushow(menuid,eval("mMenu"+x));
}
clearTimeout(mpopTimer);
}
function mmenu_out(x){
toel = getReal(window.event.toElement, "className", "coolButton");
fromel = getReal(window.event.fromElement, "className", "coolButton");
if (toel == fromel) return;
if (misShow){
mtoin(eval("mMenu"+x));
}else{
mnochange(eval("mMenu"+x));
}
mpopOut()
}
function mmenu_down(menuid,x){
if(misShow){
mmenuhide(menuid);
mtoout(eval("mMenu"+x));
}
else{
mtoin(eval("mMenu"+x));
mmenushow(menuid,eval("mMenu"+x));
misdown=true;
}
}
function mmenu_up(){
misdown=false;
}
function mmenuitem_over(menuid,item,x,j,i){
toel = getReal(window.event.toElement, "className", "coolButton");
fromel = getReal(window.event.fromElement, "className", "coolButton");
if (toel == fromel) return;
srcel = getReal(window.event.srcElement, "className", "coolButton");
for(nummenu=1;nummenu<=mnumberofsub;nummenu++){
var thesub=document.all['msubmenudiv'+nummenu]
if(!(menuid==thesub||menuid.style.tag>=thesub.style.tag)){
msubmenuhide(thesub);
mnochange(document.all['mp'+nummenu]);
document.all["mitem"+nummenu].style.color=mfontcolor;
}
}
if(item)document.all["mitem"+item].style.color=mmenuovercolor;
if(misdown||item){
mtoin(srcel);
}
else{
mtoout(srcel);
}
if(x==-1)mthestatus=eval("msub"+j).items[i].statustxt;
if(j==-1)mthestatus=mmenus[x].items[i].statustxt;
if(mthestatus!=""){
musestatus=true;
window.status=mthestatus;
}
clearTimeout(mpopTimer);
}
function mmenuitem_out(hassub){
toel = getReal(window.event.toElement, "className", "coolButton");
fromel = getReal(window.event.fromElement, "className", "coolButton");
if (toel == fromel) return;
srcel = getReal(window.event.srcElement, "className", "coolButton");
if(!hassub)mnochange(srcel);
if(musestatus)window.status="";
mpopOut()
}
function mmenuitem_down(){
srcel = getReal(window.event.srcElement, "className", "coolButton");
mtoin(srcel)
misdown=true;
}
function mmenuitem_up(){
srcel = getReal(window.event.srcElement, "className", "coolButton");
mtoout(srcel)
misdown=false;
}
function mexec3(j,i){
var cmd;
if(eval("msub"+j).items[i].target=="blank"){
cmd = "window.open('"+eval("msub"+j).items[i].command+"')";
}else{
cmd = eval("msub"+j).items[i].target+".location=/""+eval("msub"+j).items[i].command+"/"";
}
eval(cmd);
}
function mexec2(x){
var cmd;
if(mmenus[x].target=="blank"){
cmd = "window.open('"+mmenus[x].command+"')";
}else{
cmd = mmenus[x].target+".location=/""+mmenus[x].command+"/"";
}
eval(cmd);
}
function mexec(x,i){
var cmd;
if(mmenus[x].items[i].target=="blank"){
cmd = "window.open('"+mmenus[x].items[i].command+"')";
}else{
cmd = mmenus[x].items[i].target+".location=/""+mmenus[x].items[i].command+"/"";
}
eval(cmd);
}Top
12 楼 singlepine(小山)回复于 2005-09-20 13:48:53 得分 0
function mbody_click(){
if (misShow){
srcel = getReal(window.event.srcElement, "className", "coolButton");
for(var x=0;x<=mmenus.length;x++){
if(srcel.id=="mMenu"+x)
return;
}
for(x=1;x<=mnumberofsub;x++){
if(srcel.id=="mp"+x)
return;
}
mallhide();
}
}
document.οnclick=mbody_click;
function mwritetodocument(){
var mwb=1;
var stringx='
var thismenu=mmenus[x];
var imgsize="";
if(thismenu.sizex!="0"||thismenu.sizey!="0")imgsize=" width="+thismenu.sizex+" height="+thismenu.sizey;
var ifspace="";
if(thismenu.caption!="")ifspace=" ";
stringx += "
","+x+") οnmοuseοut=mmenu_out("+x+ ") οnmοusedοwn=mmenu_down(mmenudiv"+x+","+x+")"; if(thismenu.command!=""){ stringx += " οnmοuseup=mmenu_up();mexec2("+x+");"; }else{ stringx += " οnmοuseup=mmenu_up()"; } if(thismenu.pos=="0"){ stringx += " align=center> |
13 楼 singlepine(小山)回复于 2005-09-20 13:50:48 得分 0
for(var x=0;x
thismenu=mmenus[x];
if(x<0){
stringx+='