15

不幸的是,我不得不在我正在构建的网站上实现下拉级联菜单。我正在寻找一种 Suckerfish 风格的解决方案,它主要基于 CSS,并且适用于一组简单的嵌套 UL 和 LI。

Suckerfish 的儿子似乎是要走的路,但我不喜欢它在您将鼠标移开的那一刻就消失的方式,因为协调困难的用户将在导航网站时做噩梦(或者只是不打扰,但是因为它是一个公司网站,所以有些人可能不得不使用我实施的任何东西)。

欢迎我什至没有想过需要的简洁功能,但我正在寻找的两个主要元素是:

  1. 使用嵌套 UL/LI 结构的多级
  2. 当菜单“mouseout”时消失之前的小(可能可配置?)延迟,即使它是由一些额外的 JavaScript 提供的。
4

9 回答 9

8

强烈建议您使用superfish,即吸盘鱼菜单的 jQuery 改编版本。它有很多功能(延迟就是其中之一),添加了一些精美的动画功能,并优雅地降级为普通的吸盘鱼菜单。它也不需要任何额外的标记。

于 2009-01-02T18:47:50.260 回答
3

你可以使用 jQuery。这是一个例子:http ://www.jqueryplugins.com/plugin/47/

于 2008-08-19T07:52:20.547 回答
1

您将无法获得具有所需功能的纯 CSS 下拉菜单。您必须使用某种 Javascript。要么是已经提到的 JQuery 之类的库,要么是通过修改 Suckerfish 代码以使用 onclick 而不是 onmouseover/out。

但是,通过采用全 Javascript 路线,您可以让一组人(“有协调困难的用户”)更容易,但让其他人(任何使用 Javascript 的人由于某种原因关闭)变得困难。

您可能需要考虑添加一些替代方案 - 为那些习惯使用鼠标的用户提供鼠标控制的悬停菜单;通过其他人的访问键等进行基于键盘的控制。

于 2008-08-19T09:38:19.053 回答
1

部分协调问题可能源于糟糕的设计。确保你有相当大的按钮,如果可能的话,在所有方面都重叠。理想情况下,顶部导航按钮会在其下方居中显示一个下拉菜单(而不是左对齐)。下拉菜单的子菜单将遵循类似的模式。我发现这种级别的错误填充可以适应不协调的用户,并为您省去使用 javascript 编程的麻烦。

当然,每个站点都是不同的,因此我将其更多地作为替代的“假设”解决方案。

于 2009-01-02T18:59:13.280 回答
1

我正在使用 Steve Gibson 的网站grc.com上实施的解决方案。它做我需要的一切,并且不使用 javascript。但是,您正在寻找的延迟不存在,因此您可能需要为此添加一些 Javascript。

于 2008-08-25T13:56:13.550 回答
1

对于现在来到这个旧线程的任何人,我建议查看引导下拉菜单的各种修改。例如这个:

http://bootsnipp.com/snippets/featured/multi-level-dropdown-menu-bs3

祝你好运

于 2017-03-07T10:41:17.723 回答
0

我看不到在 JavaScript 之外添加延迟的方法 - 但如果您要使用 JavaScript,您不妨使用 JavaScript 控制的菜单。

如果您遵循语义正确的导航模式并将其设置为在 JavaScript 不存在时正常显示(例如静态),您应该可以使用任何内容。

这完全取决于您的目标受众——谁更大?JS禁用或协调困难的用户?我猜后者需要优先权(如果不是百分比使用,那么残疾法)。

于 2008-08-25T13:52:01.373 回答
0

正如 Lee Theobald 所说,下拉/下拉需要 Javascript,而 Jquery 是一个不错的选择。但在可访问性方面,看看“ Listamatic ”一个很棒的菜单列表和特殊的嵌套

于 2008-08-25T13:58:56.287 回答
0

我的第一个建议呼应了一个已经提出的建议——史蒂夫吉布森的 CSS 菜单。它不使用 JavaScript,与您将要获得的跨平台兼容,并且实现起来相对简单。

如果这不起作用,我的基于 JS 的推荐会转到mygosuMenu。在找到史蒂夫的菜单之前,我已经在我所有的项目中使用它很长一段时间了。其高度可配置;而且样式、结构和菜单代码都是分开的。它是一个基本的 HTML 表格,您可以通过 CSS 为您的内容设置样式。

我仍然有两个使用后者的站点:

于 2009-01-02T19:33:09.623 回答