2016-02-29 130 views
1

我有一个jQuery模式窗口,当用户执行某个动作时弹出。HTML:嵌套滚动条行为

对于较小的屏幕,此模式窗口有点太多height,因此屏幕较小的用户必须向下滚动主窗口(而不是模式窗口)以查看底部的“确定”和“取消”按钮模态窗口。另外,这个模式窗口有时候会有很长的内容,所以现在,然后一个滚动条会出现在模式窗口中,以允许用户滚动浏览更长的内容。 '确定'和'取消'按钮虽然不属于这个可滚动区域,但它们总是出现在同一个地方。

模式是否有足够长的内容可滚动,屏幕较小的用户仍然需要滚动主窗口才能看到模式窗口底部的“确定”和“取消”按钮。

我的问题是:如何使内部滚动条(内容较长的模式弹出窗口中的滚动条),一旦完全滚动到底部,将控件传递到外部滚动条,以便用户可以滚动主窗口的滚动条向下看'Ok'和'Cancel'按钮(不必将鼠标移动到外部窗口)?这个问题涉及到使用鼠标上的滚轮,因为当用户点击滚动条时拖拽会变得奇怪而且不直观。

我希望这是有道理的:)。

注:发现这一点:关于默认滚动IE的行为https://ux.stackexchange.com/questions/60339/mouse-wheel-interaction-with-nested-scrollbars

上面的链接会谈:

默认的Windows模式似乎是: 滚动的面积超过该鼠标光标当前位于 ,除非无法在该方向上进一步滚动,在这种情况下,请滚动到下一个更高级别。

O链接中问题的P似乎要避免这种基本行为(或“初始样式”滚动),但这实际上是我想要的。至少在Chrome中不起作用,但是,这似乎是IE的默认行为。

“启动样式”滚动在这里解释得很好: http://baymard.com/blog/inline-scroll-areas,“滚动劫持”部分基本上是我想在非IE浏览器中实现的。

回答

1

UX法则很简单:屏幕上没有嵌套的可滚​​动区域。

在你的特殊情况下:你应该让你的模态窗口始终适合当前的视图/窗口。因此总是可以看到dailog OK/Cancel按钮而不需要滚动。

通常模态对话框使用半透明垫片,因此文档的滚动条被隐藏。因此,用户需要在对话框中只滚动滚动,而不需要其他任何东西。

+0

谢谢你的回答。过高的模式窗口只影响小屏幕用户(少数)。而现在,调整模态不是一种选择。此外,IE浏览器似乎做我想要的默认情况下,请参阅我上面的注。任何方式我可以在Chrome和Firefox中完成这项工作? – PaulG

+0

“调整模式不是选项”您必须创建该选项。与您的情况相比,大于桌面或父视图的模式窗口始终被视为UX/UI错误。 –