可以在 gwt 中设置本机滚动条的样式,无需定义自定义滚动条,也无需使用 ScrollPanel 或 CustomScr

Possible to style native scrollbars in gwt, without defining custom scrollbars and without using ScrollPanel or CustomScrollPanel?

本文关键字:滚动条 自定义 ScrollPanel CustomScr 定义 gwt 本机 设置 样式      更新时间:2023-09-26

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

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

以下是我检测垂直滚动条的方法:

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

我希望这种重新设计对用户不可见。

本机滚动条只能在某些浏览器中使用供应商特定的语法进行样式化,请参阅div 中的 CSS 自定义滚动条以获取更完整的答案。

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

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

为了避免这个问题,GWT开发了CustomScrollPanel,这似乎不适合您,IMO它工作并且性能良好,我认为在这种情况下没有任何理由不使用它。