GWT:如何滚动到页面底部?

时间:2013-02-04 14:24:31

标签: java gwt scrollbar

在我的页面上,我有一个默认隐藏的面板。我可以在必要时通过myPanel.setVisible(true)展示。在此之后,窗口的高度增加并且窗口滚动条出现。

问题是窗口没有自动滚动到底部,这是一种理想的行为。我该如何解决?我只想将页面滚动到底部。

我知道Window.scrollTo (LEFT, TOP)可以帮助我。但问题是我不知道如何计算页面相对于顶部的高度 - 我需要为此方法提供的第二个参数。我真的尝试了很多方法:

Window.getClientHeight();
Document.get().getScrollHeight();
Document.get().getBody().getOffsetHeight();
Document.get().getBody().getAbsoluteBottom();

隐藏面板变为可见后,其中前两个不会更改其值。第二对给出0和8(???)值。

那么如何解决我的问题呢?

PS 如果情况有点不同,我有一个带滚动条的div,而不是窗口滚动条,是否可以通过编程方式将其滚动到底部?

5 个答案:

答案 0 :(得分:1)

您可以使用setVerticalScrollPostion API并设置滚动位置

答案 1 :(得分:0)

是简单的Panel还是它的一些子类。

无论如何,首先尝试:

int top = myPanel.getAbsoluteTop();

然后滚动到与顶部聚合的某个值。

来自API:

public int getAbsoluteTop()

从浏览器窗口的客户区域测量,获取对象的绝对顶部位置(以像素为单位)。

答案 2 :(得分:0)

要向下滚动文档,您应该使用Window对象中的scrollTo方法,即:

Window.scrollTo(0, Window.getScrollTop() + Window.getClientHeight());

答案 3 :(得分:0)

您实际上不需要知道页面的大小即可滚动到页面的底部。只需使用

Window.scrollTo(0, Integer.MAX_VALUE);

至少这总是对我有用。

答案 4 :(得分:-1)

如果需要,可以使用id创建窗口小部件句柄。 例如:widget.getElement().setId("scrollPanel");

然后,您可以使用Document.get().getElementById("scrollPanelFooter").scrollIntoView();滚动窗口小部件上的视图 它更简单!