4

私は疑問に思っています... GWT標準の ScrollPaneで水平スクロールバーを非表示にする方法はありますか? 外側のCSSスタイルなどを使用していない可能性がありますか? または、効果を達成するためのより最適な方法をお勧めできますか?

...そしてCSSに関して、今私はScrollPaneにこのようなスタイルを設定しようとしました

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

...しかし、それは機能せず、水平スクロールバーがまだ表示されているようです:S 回避策はありますか?

ありがとう

4

3 に答える 3

5

デフォルトでは、ScrollPaneloverflowプロパティは に設定されており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/y、CSS3 プロパティoverflowですが、CSS2 も同様です。したがって、これはあなたが求めているものではないかもしれません。

このような場合、スクロールバーを非表示にしながらスクロールできるようにするために、いくつかの CSS トリックが役立ちます

もう1つのオプションは、CustomScrollPanelウィジェットを使用することです。これにより、たとえばカスタムスクロールバーに不透明度ゼロのスタイルを提供することでスクロールバーを非表示にすることができます(最高のものではありませんが、難しいです)。

もちろん、SimplePanel問題で提案されているように、必要なすべてのスタイルを使用して、独自の div ベースのウィジェット (おそらく を拡張) をロールアウトすることもできます。

于 2013-05-02T13:20:55.063 に答える
1

おそらく少し安いですが、垂直バーの幅がウィジェットの幅に追加されます。つまり、ウィジェットが完全に表示されなくなります。したがって、水平バーが表示されるため、スクロールして垂直スクロールバーを介して非表示になっているものを見ることができます.

もしあなたが行くなら

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

表示されなくなるはずです。

于 2013-08-21T04:07:11.563 に答える