我刚安装了最新的谷歌浏览器,只是尝试使用DialogBox测试GWT 2.3代码;出于某种原因,像setGlassEnabled(true);
这样的选项以一种奇怪的方式工作:(
如果chrome的滚动窗格(y位置为0),则玻璃涂层正确
但如果 chrome的滚动窗格(y位置> 0)然后玻璃保持在0位置,因此铬的底部没有用玻璃盖住:(
我要将构造函数的第一个玻璃选项显示为
...
public MyDIalog() {
this.setGlassEnabled(true);
this.setAnimationEnabled(true);
this.setModal(true);
this.setPreviewingAllNativeEvents(true);
...
我不太确定是什么造成了这个错误,因为代码在IE和FF中运行良好:S
所以我猜在镀铬中,玻璃位置总是静止的,或者它的位置总是
x,y {0,0} w,h {firstInitedWidth,firstInitedHeight}
所以我的问题是有没有可以走走铬?
由于
答案 0 :(得分:6)
解决:
创建自己的类,扩展PopupPanel并添加:
@Override
public void setGlassEnabled(boolean enabled) {
super.setGlassEnabled(enabled);
Element glass = getGlassElement();
if (glass != null) {
glass.getStyle().setPosition(Position.FIXED);
}
}
这只是将玻璃面板的位置设置为固定而不是绝对。这使得面板不随滚动移动。
答案 1 :(得分:0)
奇怪....但我想最坏的情况是你可以在css中给玻璃样式一些疯狂的高度/宽度。
.gwt-PopupPanelGlass{
height:15000 px;
width:15000 px;
}
答案 2 :(得分:0)
作为替代方案,无需设置宽度和高度,您始终可以将CSS属性设置为fixed(使用!important指令)
.gwt-PopupPanelGlass {
position:fixed!important;
}