65.9K
CodeProject 正在变化。 阅读更多。
Home

下拉菜单实用工具 - 使用 Javascript、CSS 和 DOM

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.70/5 (5投票s)

2005年9月8日

CPOL

1分钟阅读

viewsIcon

62695

downloadIcon

568

一个 Javascript 实用工具,可帮助程序员轻松创建下拉菜单。

Sample screenshot

引言

最近我们的团队需要在我们的内网网站上实现下拉菜单。团队中的大多数人是网页设计师,而我是团队中唯一的开发人员,所以我需要找到一种让他们轻松实现下拉菜单的方法。当然,我可以使用 Dreamweaver 来完成,但它生成的代码不易修改(而且代码很长!)。因此,我决定为团队创建一个下拉菜单实用工具。

详细说明

这个实用工具是用 Javascript 编写的。它适用于 3 种不同的鼠标事件 - onMouseOver、onMouseClick 和页面依赖。以下是实现菜单的示例。你可以看到它有多么容易。

示例 1 - 在 onMouseOver 时显示子菜单
<a href="link_0" class="rightArrowGreen marginLeft10 block" 
    id="Layer_a_button"
    onMouseOver="javascript:MM_showHideLayers('Layer_a','show','rightArrowGreen',
    'rightArrowDownGreen',true)"
>Menu</a>
...
<div id="Layer_a" class="dropdownMenu">
...
</div>
 

在示例 #1 中,只需使用 onMouseOver 调用 MM_showHideLayers 函数即可。

示例 2 - 在 onMouseClick 时显示子菜单

<a href="#" class="rightArrowGreen marginLeft10 block"
    id="Layer_a_button"
    onClick="javascript:(isLayerDisplay('Layer_a'))?MM_showHideLayers('Layer_a','hide',
    'rightArrowDownGreen','rightArrowGreen',true):MM_showHideLayers('Layer_a','show',
    'rightArrowGreen','rightArrowDownGreen',true);"
>Menu</a>
...
<div id="Layer_a" class="dropdownMenu">
...
</div>
该实用工具有一个名为 isLayerDisplay(layername) 的函数,用于返回一个布尔值,指示该层是否正在显示。

示例 3 子页面 1 - 基于特定页面显示子菜单
<a href="sample3_subpage1.asp" class="rightArrowGreen marginLeft10 block"
    id="Layer_a_button">Menu</a>
...
<div id="Layer_a" class="dropdownMenu">
...
</div>
<script type="text/javascript">
 MM_showHideLayers('Layer_a','','rightArrowGreen','rightArrowDownGreen','',
 'sample3_subpage1.asp','<%=request.ServerVariables("SCRIPT_NAME")%>');
</script>
示例 #3 依赖于页面,因此你只需要在 javascript 中指定要显示的页面即可( MM_showHideLayers('Layer_a','','rightArrowGreen','rightArrowDownGreen','','sample3_subpage1.asp','<%=request.ServerVariables("SCRIPT_NAME")%>'); </script>)。
正如你所看到的,实现下拉菜单并不困难。我欢迎大家改进我的脚本,使其更加灵活。感谢阅读我的文章。
© . All rights reserved.