【发布时间】:2014-08-21 08:05:56
【问题描述】:
我有用 UL、LI... 定义的菜单,最多有一个子菜单:
ul
li: item 1
li: item 2
ul
li: item 2.1
li: item 2.2
li: item 3
ul
li: item 3.1
li: item 3.2
li: item 3.3
我想要实现的是以“子菜单项容器”在单击时滑动到下一个子菜单的方式显示子菜单。在上面的示例中,这意味着:
- 当用户点击项目 2 时,将显示带有子项目的容器
- 当用户单击第 3 项时,容器以某种方式从第 2 项滑动/动画/转换到第 3 项,更改子项
只有在子菜单容器已经可见时才会发生这种转换...如果不可见,它只会显示在单击的菜单项旁边。
我不知道如何解决这个问题,希望得到您的帮助。 谢谢!
编辑:
这是启用悬停的示例,没有 JS(我知道 CSS 不支持 onclick,但我可以稍后处理): http://codepen.io/anon/pen/HDinB
这显示了一个底部对齐的主菜单项。每个主菜单项都可以有子项(这只是一级深菜单,不会有子级)。子菜单将包含最多 9 个可放入一个盒子(您看到的黑盒子)的项目。 What I want is that subitems apear "in" that box, but when new main item with submenu items is selected this box will slide (if already visible) to the new position and kind of be wrapper for new subitems.这是一个浮动的盒子,还是真正的容器,还是第三种,我不知道,因为我真的不知道处理这个问题的最佳方法是什么。
【问题讨论】:
-
你有没有尝试过? :) 允许使用 jQuery 吗?
-
带有最少 JS 的 CSS 将是首选(如果可能,不要使用 jQuery)。我有麻烦如何开始这个..我最初的想法是:1.显示子菜单,2如果选择了新菜单(并且有一个子菜单),将当前打开的子菜单转换到新子菜单的相同坐标,3.淡出/在子菜单中。但这需要知道过渡何时结束才能开始淡入/淡出。
-
...或者,有某种绝对位置的“背景”,来回滑动它..
-
CSS 没有“点击时”触发器,因此只能使用 JS 来触发点击。 jQuery 将使您的生活变得轻松,请检查我提供的答案...
标签: javascript css