我处于不幸的位置,不得不在我正在建设的网站上实施下拉级联菜单。我正在寻找一种主要基于CSS的Suckerfish风格的解决方案,它可以在一组简单的嵌套UL和LI上工作。
Son of Suckerfish似乎是要走的路,但是我不喜欢它移动鼠标的第二种方式消失,因为有协调困难的用户会有一个噩梦导航网站(或只是不打扰,但由于它是一个公司网站,有些人可能 使用我实施的任何东西。)
我还没有想到需要的整洁功能,但我正在寻找的两个主要元素是:
答案 0 :(得分:7)
我强烈建议你使用superfish,suckerfish菜单的jQuery改编。它具有大量功能(延迟就是其中之一),增加了一些奇特的动画功能,并且优雅地降级到正常的suckerfish菜单。它也不需要任何额外的标记。
答案 1 :(得分:3)
你可以使用jQuery。以下是一个示例:http://www.jqueryplugins.com/plugin/47/
答案 2 :(得分:1)
您将无法获得具有所需功能的纯CSS下拉菜单。你必须使用某种Javascript。要么是像JQuery这样的库,要么是通过修改Suckerfish代码来使用onclick而不是onmouseover / out。
但是通过使用所有Javascript路线,您可以让一组人(“具有协调困难的用户”)变得更容易,但让其他人感到困难(因某些原因关闭Javascript的任何人)。
您可能需要考虑添加一些替代方案 - 鼠标控制的悬停菜单,适合那些使用鼠标的人;基于键盘的控制通过访问键等为其他人。
答案 3 :(得分:1)
我正在使用Steve Gibson网站grc.com上实施的解决方案。它可以完成我需要的一切,并使用无javascript 。然而,你正在寻找的延迟是不存在的,所以你可能需要为此添加一些Javascript。
答案 4 :(得分:1)
部分协调问题可能源于糟糕的设计。确保你有相当大的按钮,如果可能的话,在所有侧面重叠。理想情况下,顶部导航按钮会在其下方居中显示下拉菜单(而不是左对齐)。下拉列表的子菜单将遵循类似的模式。我发现这种级别的错误填充可以容纳不协调的用户,并且可以省去用javascript编程的麻烦。
每个网站当然都不同,所以我更多地将其作为替代“假设”解决方案。
答案 5 :(得分:1)
对于现在来到这个旧线程的任何人,我建议您查看bootstrap下拉菜单的各种修改。例如:
http://bootsnipp.com/snippets/featured/multi-level-dropdown-menu-bs3
祝你好运答案 6 :(得分:0)
我看不到在JavaScript之外添加延迟的方法 - 但是如果你要使用JavaScript,你也可以使用JavaScript控制的菜单。
如果您遵循语义正确的导航模式并进行设置,以便在JavaScript不存在时显示正常(例如静态),那么无论您使用什么,都应该没问题。
所有关于你的目标受众 - 谁更大? JS残疾人或有协调困难的用户?我猜想后者需要优先考虑(如果不是百分比用于残疾人法律)。
答案 7 :(得分:0)
正如Lee Theobald所说,下拉/下拉需要Javascript,而Jquery是一个很好的选择。但是在可访问性方面,请查看“Listamatic”一个很棒的菜单列表和特殊this nested。
答案 8 :(得分:0)
我的第一个推荐回声已经做过 - Steve Gibson's CSS Menu。它不使用JavaScript,与您将获得的跨平台兼容,并且实现起来相对简单。
如果这不起作用,我的基于JS的推荐转到mygosuMenu。在找到史蒂夫的菜单之前,我已经在我的所有项目上使用它已经有一段时间了。它高度可配置;和样式,结构和菜单代码都是分开的。它是一个基本的HTML表格,您可以通过CSS为您的内容添加样式。
我还有两个使用后者的网站: