html - GWT PopupPanel 不正确的弹出位置

标签 html css gwt popup popuppanel

我正在使用 GWT PopupPanel 在用户单击按钮时在按钮上方显示一个弹出窗口。

我正在设置弹出窗口的位置并像这样显示它:

panel.setPopupPosition(leftPos, topPos);
panel.show();

但是,当我检查弹出窗口的最高值时,我发现它的位置略低于我分配的位置。

问题可能是 setPopupPosition 更改了传入的值:

// Account for the difference between absolute position and the
// body's positioning context.
left -= Document.get().getBodyOffsetLeft();
top -= Document.get().getBodyOffsetTop();

如何确保 GWT PopupPanel 的位置与我给它的值完全一样? setPopupPosition() 似乎真的是设置位置的唯一方法,但它对我传入的位置进行了一些操作(这对我的用例来说是不必要的)。

最佳答案

您可以使用直接访问弹出窗口的 DOM 元素来调整 PopupPanel 的位置。但它应该在调用 show() 之后和使弹出窗口可见之前完成。否则,您可能会看到一些“跳跃”效果。 示例:

PopupPanel popupPanel = new PopupPanel();
...
// this callback will be called after PopupPanel.show(), but before it is shown
popupPanel.setPopupPositionAndShow(new PositionCallback() {
    @Override
    public void setPosition(int offsetWidth, int offsetHeight) {
        Style style = popupPanel.getElement().getStyle();
        style.setLeft(100, Unit.PX);
        style.setTop(100, Unit.PX);
    }
});

关于html - GWT PopupPanel 不正确的弹出位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46652904/

相关文章:

php - 如何删除我网站上的第三方图标?

JQuery 主题生成器 CSS 问题

css - GWT - CSS 动画不工作

java - 单元缓存映射加载失败 - GWT

Java语法解释

php - 使用 PHP 和复选框更新 MySQL 表

javascript - 如何使用 jquery 或 JavaScript 将元素属性与 Bootstrap Popover html 绑定(bind)?

javascript - 向下滚动页面时粘性表格标题单元格?

javascript - 在 colorbox iframe 上设置 body font-size

javascript - 内联框不包含任何内容时如何保持显示?