有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

在我的页面上,我有一个默认隐藏的面板。必要时,我可以通过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) 个答案

  1. # 1 楼答案

    它是简单的面板还是它的某个子类

    在任何情况下,请先尝试以下方法:

    int top = myPanel.getAbsoluteTop();
    

    然后滚动到与top聚合的某个值

    从API:

    public int getAbsoluteTop()

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

  2. # 2 楼答案

    如果需要,可以创建带有id的小部件句柄。 例如:widget.getElement().setId("scrollPanel");

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

  3. # 3 楼答案

    实际上,你不需要知道页面的大小就可以滚动到底部。使用

    Window.scrollTo(0, Integer.MAX_VALUE);

    至少这对我一直有效

  4. # 4 楼答案

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

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