2016-02-29 53 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錯誤。 –