获得一个GWT PopupPanel与玻璃淡入和淡出



我想把淡出一个PopupPanel到我的页面。我可以获得PopupPanel元素并自己动画不透明度,但我无法访问玻璃元素。这不是一个真正的技术问题,而是PopupPanel选择暴露的限制(我想说)。

有谁知道变通或替代方法吗?谢谢!

基本上所有的玻璃板看起来都像

<div class="gwt-PopupPanelGlass" style="..."></div>

如果你真的需要获取这个元素并制作动画你可以通过jsni:

这样做
elements = document.getElementsByClassName("gwt-PopupPanelGlass")

,然后改变元素的样式。但这是一种变通方法,你需要在不同的浏览器上进行测试。

解决方案1—延迟绑定

样本 - https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsDeferred#example理论 - https://code.google.com/p/google-web-toolkit/wiki/DeferredBindingsForJRE

解决方案2 -使用Java类路径进行黑客攻击

当java在同一包层次结构中遇到重复的java文件时,它会从jar中选择在类路径中位于其他文件前面的文件。在某些情况下,我们使用这种类重写技术来更改GWT类选择公开的内容。我们将PopupPanel java文件复制到GWT包中的代码库中,即com.google.gwt.user.client.ui.

我们需要确保GWT编译器在GWT -user.jar之前在类路径中看到我们的PopupPanel版本。这意味着GWT编译器选择我们的版本,而不是GWT的!!你可以继续编辑PopupPanels属性/方法范围,从private到更高。

注意-您需要确保PopupPanel java文件与每个GWT版本同步

最新更新