JavaScript实现鼠标感应向下滑出的隐藏菜单

作者:木棉

时间:2026-10-28

浏览:89

本文介绍了一种基于JavaScript实现的网页隐藏菜单效果。该菜单初始状态隐藏在页面左上角,当鼠标移入时会自动向下滑出显示,移出后则向上收起。文章提供了完整的HTML、CSS及JS代码,详细演示了如何通过检测鼠标事件控制菜单的可见性与位置,适用于需要节省页面空间且提升交互体验的场景。

文章目录

JavaScript实现鼠标感应向下滑出隐藏菜单

本文详细介绍了一种利用JavaScript实现的网页隐藏菜单交互方案。该方案旨在展示如何通过代码控制菜单的显示与隐藏,供读者参考学习。具体的实现逻辑与代码结构如下所示:

以下是完整的实现代码:

<html>
<head>
<title>隐藏在网页左上角感应鼠标向下滑出的隐藏菜单</title>
<style>#D1 {
BACKGROUND-COLOR: blue;
BORDER-BOTTOM: white 2px outset;
BORDER-LEFT: white 2px outset;
BORDER-RIGHT: white 2px outset;
BORDER-TOP: white 2px outset;
LEFT: 0px; POSITION: absolute;
TOP: 0px; VISIBILITY: hidden;
WIDTH: 300px;
layer-background-color: lightgreen
}
a{font-size:9pt;color:#000000}
a:link{text-decoration:none}
a:hover{text-decoration:none;color:#FFFFFF}
a:visited{text-decoration:none}
.40pt{font-size:40pt;color:#ub39a1;font-family:文鼎琥珀繁}
</style>
<script language="javascript">
function menuIn() //菜单隐藏
{
if(n4) {
clearTimeout(out_ID)
if( menu.top > menuH*-1+20+10 ) {
menu.top -= 8
in_ID = setTimeout("menuIn()", 1)
                }
else if( menu.top > menuH*-1+20 ) {
menu.top--
in_ID = setTimeout("menuIn()", 1)
                }
        }
else {
clearTimeout(out_ID)
if( menu.pixelTop > menuH*-1+20+10 ) {
menu.pixelTop -= 8
in_ID = setTimeout("menuIn()", 1)
                }
else if( menu.pixelTop > menuH*-1+20 ) {
menu.pixelTop--
in_ID = setTimeout("menuIn()", 1)
                }
        }
}
function menuOut() //菜单显示
{
if(n4) {
clearTimeout(in_ID)
if( menu.top < -10) {
menu.top += 4
out_ID = setTimeout("menuOut()", 1)
                }
else if( menu.top < 0) {
menu.top++
out_ID = setTimeout("menuOut()", 1)
                }
                
        }
else {
clearTimeout(in_ID)
if( menu.pixelTop < -10) {
menu.pixelTop += 2
out_ID = setTimeout("menuOut()", 1)
                }
else if( menu.pixelTop < 0 ) {
menu.pixelTop++
out_ID = setTimeout("menuOut()", 1)
                }
        }
}
function fireOver() {
clearTimeout(F_out)
F_over = setTimeout("menuOut()", 10)
}
function fireOut() {
clearTimeout(F_over)
F_out = setTimeout("menuIn()", 10)
}
function init() {
if(n4) {
menu = document.D1
menuH = menu.document.height
menu.top = menu.document.height*-1+20
menu.onmouseover = menuOut
menu.onmouseout = menuIn
menu.visibility = "visible"
        }
else if(e4) {
menu = D1.style
menuH = D1.offsetHeight
D1.style.pixelTop = D1.offsetHeight*-1+20
D1.onmouseover = fireOver
D1.onmouseout = fireOut
D1.style.visibility = "visible"
        }
}
F_over=F_out=in_ID=out_ID=null
n4 = (document.layers)?1:0
e4 = (document.all)?1:0;
</script>
</head>
<body onload="init()">
<div id="D1">
<table border="0" width="100%">
<TBODY>
 <tr>
 <td align="middle" bgColor="ub39a1" rowSpan="2"><b style="COLOR: ub39a1">
 M<br>
 E<br>
 N<br>
 U</b></td>
 <td> <br><br><ul>
 <li><a href="#nogo">
 选 项 1</a> 
 </li>
 <li><a href="li#nogo">
 选 项 2</a> 
 </li>
 <li><a href="#nogo">
 选 项 3</a> 
 </li>
 <li><a href="#nogo">
 选 项 4</a> 
 </li>
 <li><a href="#nogo">
 选 项 5</a> 
 </li>
 </ul>
 </td>
 <td><br><br><ul>
 <li><a href="#nogo">
 选 项 6</a> 
 </li>
 <li><a href="#nogo">
 选 项 7</a> 
 </li>
 <li><a href="#nogo">
 选 项 8</a> 
 </li>
 <li><a href="#nogo">
 选 项 9</a> 
 </li>
 <li><a href="#nogo">
 选 项 10</a>
 </li>
 </ul>
 </td>
 </tr>
 <tr>
 <td align="right" colSpan="2">
 </td>
 </tr>
</TBODY>
</table>
</div>
</body>
</html>

希望本文所述的JavaScript程序设计示例能对读者有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章