Javascript 滑动菜单保持打开状态。clearTimeout 没有按预期工作 - 你能帮我吗
<html>
<head>
<style>
#Menu1 {position:absolute;
top:-190px; left:150px;
font-size:15px;visibility:visible;
background-color:#D0BCFE;
width:114px;z-index:0;border-style:solid;
}
#Menu2 {position:absolute;
top:-190px; left:580px;
font-size:15px;visibility:visible;
background-color:#D0BCFE;
width:114px;z-index:0;border-style:solid;
}
#Menu3 {position:absolute;
top:-190px; left:1005px;
font-size:15px;visibility:visible;
background-color:#D0BCFE;
width:114px;z-index:0;border-style:solid;
}
TD.TDHREFMENUS{font-size:20;color:red;position:relative;z-index:0;background-color:#C4ABFE;border-style:solid;width:114px;}
</style>
<script>
var stopUp=null;
var stopDown=null;
var mov=-143;
var on;
function down(id){
if (!on){
on=true;
clearTimeout(stopUp)
stopUp=null;
}
var obj=document.getElementById(id)
obj.style.top=mov +"px";
if (mov <=27){
mov+=2;
stopDown=setTimeout(function (){ down(id) }, 20)
}
}
function up(id){
if (on){
on=false;
clearTimeout(stopDown)
stopDown=null;
}
var obj=document.getElementById(id)
obj.style.top=mov +"px";
if (mov >=-143){
mov-=2;
stopUp=setTimeout(function(){ up(id)}, 20);
}
}
</script>
</head>
<body leftmargin=0 marginwidth=0 topmargin=0 marginheight=0>
<div id="Menu1" onmouseover="down('Menu1')" onmouseout="up('Menu1')">
URL 1<br>
URL 2<br>
URL 3<br>
URL 4<br>
URL 5<br>
URL 6<br>
URL 7<br>
URL 8<br>
</div>
</div>
<div id="Menu2" onmouseover="down('Menu2')" onmouseout="up('Menu2')">
URL 1<br>
URL 2<br>
URL 3<br>
URL 4<br>
URL 5<br>
URL 6<br>
URL 7<br>
URL 8<br>
</div>
</div>
<div id="Menu3" onmouseover="down('Menu3')" onmouseout="up('Menu3')">
URL 1<br>
URL 2<br>
URL 3<br>
URL 4<br>
URL 5<br>
URL 6<br>
URL 7<br>
URL 8<br>
</div>
</div>
<TABLE cellSpacing=0 cellPadding=0 BORDER=1 WIDTH=100%>
<TBODY>
<TR>
<TD align=middle CLASS="TDHREFMENUS"><span onmouseover="down('Menu1')" onmouseout="up('Menu1')">MENU 1</span>
</TD>
<TD align=middle CLASS="TDHREFMENUS"><span onmouseover="down('Menu2')" onmouseout="up('Menu2')">MENU 2</span>
</TD>
<TD align=middle CLASS="TDHREFMENUS"><span onmouseover="down('Menu3')" onmouseout="up('Menu3')">MENU 3</span>
</TD>
</TR>
</TBODY>
</TABLE>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<html>
<head>
编辑:当我测试它时,如果我将鼠标悬停在一个菜单上,但如果我将鼠标快速移动到几个菜单上,第一个菜单有效,但其他菜单也停止。
Menu1 {位置:绝对;
top:-190px; left:150px;
font-size:15px;visibility:visible;
background-color:#D0BCFE;
width:114px;z-index:0;border-style:solid;
}
Menu2 {位置:绝对;
top:-190px; left:580px;
font-size:15px;visibility:visible;
background-color:#D0BCFE;
width:114px;z-index:0;border-style:solid;
}
Menu3 {位置:绝对;
top:-190px; left:1005px;
font-size:15px;visibility:visible;
background-color:#D0BCFE;
width:114px;z-index:0;border-style:solid;
}
TD.TDHREFMENUS{font-size:20;color:red;position:relative;z-index:0;background-color:#C4ABFE;border-style:solid;width:114px;}
变量停止=空;变量停止=空;变种移动=-143;变种;功能 down(id){ if (!on){ on=true; 清除超时(停止)停止=空;} var obj=document.getElementById(id) obj.style.top=mov +"px"; 如果 (mov =-143){ mov-=2; stopUp=setTimeout(function(){ up(id)}, 20); } } 网址 1网址 2
网址 3
网址 4
网址 5
网址 6
网址 7
网址 8
网址 1
网址 2
网址 3
网址 4
网址 5
网址 6
网址 7
网址 8
网址 1
网址 2
网址 3
网址 4
网址 5
网址 6
网址 7
网址 8
菜单 1 菜单 2 菜单 3