我想把淡出一个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版本同步