Вывод из случая, когда страница перескакивает из-за введения вертикальной полосы прокрутки (как описано здесь), я решил всегда отображать панель с помощью html { overflow-y: scroll !important; }
html { overflow-y: scroll !important; }
, а не использовать скрипт, который прослушивает и меняет ширину окна/документа. Я думаю, что стилизация панели как полностью прозрачная и без кнопок после загрузки страницы (при обнаружении панели), придавая ей вид, что нет полосы прокрутки, является другой альтернативой. Я читал, что замена RootPanel
на RootLayoutPanel
также может помочь в этом случае, хотя это не может быть и речи в этом конкретном случае.
Как бы я смоделировал текущую собственную вертикальную полосу прокрутки, избегая при этом использования другой панели-обертки или настраиваемой панели любого типа, как описано здесь?
Здесь, как бы я обнаружил вертикальную полосу прокрутки:
if( RootPanel.getBodyElement().getOffsetHeight() > Window.getClientHeight() )
//bar is present
Я надеюсь, что этот стиль не будет видимым для пользователя.
Родные полосы прокрутки можно стилизовать только в определенных браузерах и использовать специфический синтаксис поставщика, см. CSS с настройкой полосы прокрутки в div для получения более полного ответа.
Таким образом, ответ на ваш вопрос заключается в том, что вы можете создавать полосы прокрутки в IE, Webkit и Opera, но не в Firefox.
Связанный с проблемой перескакивания страницы, когда появляется прокрутка, она может быть исправлена только с помощью js или ее всегда видно. Эффект прыжка не может быть разрешен с помощью css, хотя в браузерах, поддерживающих css.
Чтобы избежать этой проблемы, GWT разработала CustomScrollPanel
который, кажется, не является для вас вариантом, IMO работает и работает хорошо, и я не вижу причин для его не использования в этом случае.