代码之家  ›  专栏  ›  技术社区  ›  nw.

复杂网络形式的粘性标题(a la iPhone)

  •  1
  • nw.  · 技术社区  · 16 年前

    我正在设计一个复杂的web表单(面向受过训练的用户,而不是开车经过的用户),它有许多部分,其中许多部分包含子部分。表格可能会变得很长,这取决于具体情况。如果(子)节标题在(子)节完全滚动过去之前保持可见,则可用性将大大增强。

    例如,在iPhone上滚动音乐艺术家时,“A”标题保持可见,直到“B”标题向上滚动,将“A”向上弹出屏幕。类似地,Excel允许您冻结表的顶行,尽管这没有iPhone示例那么丰富。

    因此,我认为header div应该与view窗格和content div的交叉点顶部对齐:

       +--------------+
       |  [content]   |
    +-------------------------+
    |  | +----------+ |       |
    |  | | [header] | |       |
    |  | +----------+ |       |
    |  |              |       |
    |  |              |       |
    |  +--------------+       |
    |                         |
    |      [view pane]        |
    +-------------------------+
    
    2 回复  |  直到 14 年前
        1
  •  2
  •   David Thomas    16 年前

    这是几乎肯定需要javascript的事情之一。CSS3允许一些相对复杂的行为,但我不认为它允许这么复杂的行为。

    不过,我可以通过以下方式向您指出这一点的jQuery实现 Remy Sharp jQuery for Designers Left Logic : iPhone-like sliding headers .

        2
  •  1
  •   Scott Cranfill    16 年前

    我认为没有JavaScript是不可能的。陷阱在于当您滚动到一个新的部分时标题会发生变化。或者,更一般地说,让它都是可滚动的,然后当它到达窗口的顶部时,它会附着到窗口的顶部。我相信您必须使用JavaScript来检查视口的位置,并在任何给定的时间附加适当的标题。