在我的gwt中,我有一个像下面一样触发的按钮以创建新的小部件

 @UiHandler("buttonfire")
  void addNewWidget(ClickEvent event) {


     htmlPanelHolder.add(new MyCustomWidget(),"placeholder");

 }

如何使用jquery,以便当MyCustomWidget()在屏幕上显示时使用jquery的“淡入淡出”效果

我已经尝试将jsni放在新的MyCustomWidget()onload()内调用jquery,但是不起作用。可以指导我吗?

最佳答案

也可以在不使用jQuery的情况下创建淡入效果。如果要这样做,只需编写一个Animation类,如下所示:

public class FadeInAnimation extends Animation {
    private final UIObject uiObject;

    FadeInAnimation(final UIObject uiObject) {
      this.uiObject = uiObject;
    }

    @Override
    protected void onUpdate(final double progress) {
      uiObject.getElement().getStyle().setOpacity(progress);
    }
}

然后,您可以在任何小部件上使用它:
new FadeInAnimation(myWidget).run(5000);

注意:调用getStyle().setOpacity(..)甚至会处理特殊情况IE6 / 7,在此情况下它将设置style.filter = 'alpha(opacity=' + (value * 100) + ')';

09-26 17:25