2009-11-21 31 views
3

我有一个菜单,其中包含<ul>在Web CMS中。 我希望几个菜单项具有显示在下拉列表中的子项目。这些子项目也是<ul>。Javascript下拉菜单部件

这基本上是很容易与CSS和JavaScript的几行的事,但我要寻找一个现成的JavaScript的解决方案,可以帮助我处理好以下几个:

  • 处理屏幕边缘的情况:如果下拉菜单中的任何部分将位于当前视口之外,请将其放置在视口中。

这是一个从头开始编码的婊子。

“很高兴有” S是:

  • 下面的下拉按钮,中心定位

  • 添加onclick事件使体内点击下拉菜单之外将关闭它;事后清除onclick事件

但那些我可以自己做,如果有必要。

一个很好,小,不显眼的小部件,神奇地转换我的<ul>将是可爱的。

如果解决方案基于框架,它必须是Prototype,因为这正是我在CMS中使用的。

回答

3

您可以获取UL的偏移量,并检查它们是否在视口的一定距离内。

// Pseudo code 
var ul = document.getElementById("menu"); 
if(ul.offset.x + ul.width > viewport.width) { 
    ul.offset.x = viewport.width - ul.width; 
} 

也有可能拿到的下拉按钮的准确位置点击,然后你应该以定位它下面的菜单应用基本的数学。

+0

是的,这是要走的路。然而,根据以往的经验,我知道如果正确(考虑到可滚动容器,绝对/相对定位以及什么),然后使其在所有浏览器中都能正常工作,往往会耗费大量时间。我很想解决这个问题:) –

+0

在这种情况下,一个图书馆会真的帮助,但不幸的是我无法帮助你,因为我倾向于使用自己的图书馆。 – 2009-11-21 18:03:20

+0

我最终推出了自己的产品。 –