代码之家  ›  专栏  ›  技术社区  ›  jammus

使用jquery和jdmenu插件创建多层可滚动菜单

  •  2
  • jammus  · 技术社区  · 15 年前

    在我们的应用程序中,我们使用 jdMenu plugin 从嵌套的无序列表创建分层菜单。

    example

    在菜单中有如此多的项目被强制从屏幕上消失之前,这一点很有效。

    it's too big!

    为了解决这个问题,我更新了插件(实际上是jdmenu要求的positionby plugin),这样当发现一个长菜单时,插件会降低菜单的高度(ul),应用溢出:隐藏并尝试再次放置它。然后,它会在菜单上附加一个mousemove事件,这样当用户上下移动鼠标时,菜单会滚动,允许他们查看隐藏的项目。像这样:

    alt text

    (打印屏幕不捕获指针,但在左侧屏幕上,它在菜单的顶部,在右侧,它在底部)

    当它是层次结构中最后一个过长的菜单时,这是有效的,但是,如果层次结构上更远的菜单过长,则不会显示它的子菜单,因为应用了溢出:隐藏。

    所以,我的问题是…在不使用溢出的情况下,是否还有另一种方法来实现这种效果:隐藏(或者我可以更好地使用它)?

    或者,是否有一个更合适的jquery插件允许我做类似的事情?

    如果需要进一步澄清,请通知我。感谢负载。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Esteban Küber    15 年前

    Someone else already answered something like this :

    这种类型的控件也随处可见 通常在公司应用中: 下拉控件并列出 包含数千个条目。

    Some programmers just use a hammer for screws. http://homepage.mac.com/bradster/iarchitect/images/list2.gif

    错误使用它的程序员 通常会得到一个提示 当他们发现这一点时是不适当的 要花很长时间 加载窗体。

    以下 在Visual Basic中发布的消息 12月11日的程序员论坛, 1996年,是典型的:

    我想填A 包含2000个项目的列表框…这个 花了很长时间…超过20 分钟。有什么想法吗?

    还有一个帖子 1996年12月16日 不太典型:

    我在找名单 可以…保持大 条目数(20000+条)

    这种笨拙控制的借口 通常是对 万能的武器召唤,“我们必须 确保数据的完整性。 程序员希望确保 用户指定有效的条目;在其 视图,最好的方法是 强制用户从列表中选择。 如果你有,比如20, 60个,甚至100个 名单。除了这个数字,事实是 用户只能滚动 一次处理少量项目会导致 控制变得笨拙。

    你其实做得还不错,但我能建议你用其他方法来做吗?更多的菜单?多步骤行动?


    编辑

    您现在有了这个结构:

    Clients -> 
        Letters of alphabet [A-Z] -> 
            Clients beginning with selected letter -> 
                Contracts belonging to selected client
    

    如果我 不得不使用 下拉菜单,我会做同样的事情。

    但是你可以用一个“客户机”文本框/下拉框弹出一个弹出窗口(只针对一小部分客户机),并自动完成。

    一旦您选择了客户机,您将拥有一个搜索功能的列表框(用于小数量的搜索),用于搜索属于客户机的所有合同。你甚至可以按姓名、日期、号码等搜索。

    选择并检查完合同后,按 好啊 会导致和你一样的行为。

    当然,在下拉菜单旁边这看起来有点麻烦,但是考虑到有了这么多的嵌套,“搜索”会更快。


    还有一件事:不要这样结束!:)

    Window madness! http://homepage.mac.com/bradster/iarchitect/images/cserve.gif

        2
  •  1
  •   Tom    15 年前

    除了使用自动完成功能,为什么不列出最近选择的5个客户机呢?因此,如果您在应用程序周围的项目之间切换,您总是可以找到您选择的最新客户机。

    对于这个问题,用不同的解决方案做一些用户测试是很有趣的,使用一些 screen recording software 并了解如何改进用户体验。

        3
  •  0
  •   Mottie    15 年前

    这个 jQuery ListMenu 可能是你的主意……这不是一个多层次的菜单系统,但是用字母表来组织你的列表可能会更干净。