可以在gwt中设置原生滚动条的样式,而无需定义自定义滚动条并且不使用ScrollPanel或CustomScrollPanel?

时间:2013-10-22 21:03:48

标签: java javascript jquery css gwt

由于引入了垂直滚动条(如here所述)导致页面跳转的情况,我决定始终使用html { overflow-y: scroll !important; }显示栏,而不是使用脚本侦听和更改窗口/文档宽度。我认为,在页面加载后(在检测到条形图时)将条形设计为完全透明且无按钮,使其看起来没有滚动条,这是另一种选择。我已经读过将RootPanel替换为RootLayoutPanel也可能有助于这种情况,尽管在这个具体情况下这是不可能的。

我如何设置当前原生垂直滚动条的样式,同时避免使用任何类型的其他包装器面板或自定义栏,如here所述?

以下是我如何检测垂直滚动条:

if( RootPanel.getBodyElement().getOffsetHeight() > Window.getClientHeight() )
    //bar is present

我希望用户不会看到这个restyle。

1 个答案:

答案 0 :(得分:1)

原生滚动条只能在某些浏览器中使用特定于供应商的语法进行样式化,有关更完整的答案,请参阅CSS customized scroll bar in div

所以对你的问题的回答是,你可以在IE,Webkit和Opera中设置滚动条样式,但不能在Firefox中设置。

与滚动出现时页面跳转的问题相关,它只能使用js修复,或者设置始终可见。在支持css的浏览器中,使用css无法解决跳跃效果。

为了避免这个问题,GWT开发了CustomScrollPanel,这对你来说似乎不是一个选项,IMO它的工作和表现都很好,在这种情况下我没有看到任何不使用它的原因。