8.5.3 JavaScript
使用JavaScript来控制菜单显示,其背后的基本思想是很简单的。鼠标光标放在一个列表项上,如果它有一个嵌套的列表(一个弹出式菜单),那么显示该嵌套的列表;鼠标光标离开该列表,就会隐藏任何嵌套的列表。
还有一些微妙的地方使得这一基本思路变得更加复杂。例如,当鼠标光标从弹出式菜单的父列表项上移开的时候,它立即会消失,这需要有精确的鼠标技术。在试图导航到一个弹出式菜单的时候,很容易将鼠标光标从一个列表项上移开。如果这个菜单突然消失,将迫使访问者把鼠标光标移回到最初的列表项,以再次打开菜单。当有数个层级的弹出式菜单的时候,容易漏掉目标并丢掉菜单,这是很令人沮丧的。
为了解决这个问题,大多数导航菜单脚本都添加了一个计时器功能,它延迟了弹出式菜单的消失时间。这个计时器提供了并非那么精确的鼠标技术,并且使得弹出式菜单显得更加稳定一些。
jQuery Navigation插件是创建基本的下拉式菜单的一种非常容易的方法,并且,它还提供了淡入或滑入效果的选项。