4

我想知道......有没有办法用 GWT 标准ScrollPane隐藏水平滚动条?我的意思是可能不使用外部 CSS 样式等?或者您可以推荐一种更优化的方式来达到效果?

...关于 CSS,现在我尝试为我的 ScrollPane 设置这样的样式

.a-scroll {
overflow-y: scroll;
overflow-x: hidden;
}

...但它似乎不起作用并且水平滚动条仍然可见:S 那么有解决方法吗?

谢谢

4

3 回答 3

5

默认情况下将ScrollPanel'overflow属性设置为auto(即滚动条会根据需要出现)以获得最跨浏览器的解决方案。因此,由浏览器决定何时显示此类滚动条。此外,调用scrollPanel.setAlwaysShowScrollBars(false)是无用的,因为在构造时已经调用(在initialize()方法中)。

无论如何,我发现您要求的是一个已知问题

如果您想始终隐藏水平滚动条,您需要overflow-x: hidden在 的可滚动元素上设置属性ScrollPanel(正如您所尝试的,但这样的面板不是一个带有overflow属性的简单 div)。尝试:

public class MyScrollPanel extends ScrollPanel {

  public void setAlwaysHideHorizontalScrollBar(boolean alwaysHide) {
    getScrollableElement().getStyle().setOverflowX(alwaysHide ? Overflow.HIDDEN : Overflow.AUTO);
  }
  // ... and the like.
}

请记住,如果您设置了上述内容,在某些浏览器中您将无法再水平滚动。也是overflow-x/yCSS3 属性,overflow而是 CSS2。所以这可能不是你所追求的。

在这种情况下,一些 CSS 技巧可以帮助隐藏滚动条,但仍然允许滚动,就像这样

另一个选项可能是使用CustomScrollPanel小部件,除其他外,它允许通过提供一个具有零不透明度样式的自定义滚动条来隐藏滚动条(这不是最好的东西,很难)。

当然,另一种选择可能是推出您自己的基于 div 的小部件(可能是扩展SimplePanel),其中包含您需要的所有样式,如问题中所建议的那样。

于 2013-05-02T13:20:55.063 回答
1

可能有点便宜,但是垂直条的宽度被添加到小部件的宽度上,这意味着小部件不再完全显示。因此水平条显示,因此您可以滚动查看通过垂直滚动条隐藏的内容。

如果你走的话

scrollPanel.setAlwaysShowScrollBars(false);
scrollPanel.setWidth("normalwidth + 8px");

它应该停止显示。

于 2013-08-21T04:07:11.563 回答
-1

如果内容没有溢出容器,您可以隐藏滚动条

scrollPanel.setAlwaysShowScrollBars(false);

如果您的滚动条仍在显示,您可能需要查看您的内容。

于 2013-04-29T21:01:46.553 回答