隐藏/显示动画

时间:2011-04-26 14:36:32

标签: gwt panel

我想知道是否可以在隐藏/展示面板上使用简单的gwt制作动画(没有附加的图书馆)。

欢迎任何建议。

谢谢

2 个答案:

答案 0 :(得分:3)

GWT的布局类支持动画。查看LayoutDockLayout en SplitLayout。此外,还有一个Animation类,在几个面板中用于使用动画来显示/隐藏内容。只需使用Animation类检查类。

答案 1 :(得分:3)

也许您会发现此代码对NotificationMole

有用
private class MoleAnimation extends Animation {
    private int endSize;
    private int startSize;

    @Override
    protected void onComplete() {
      if (endSize == 0) {
        borderElement.getStyle().setDisplay(Display.NONE);
        return;
      }
      borderElement.getStyle().setHeight(endSize, Unit.PX);
    }

    @Override
    protected void onUpdate(double progress) {
      double delta = (endSize - startSize) * progress;
      double newSize = startSize + delta;
      borderElement.getStyle().setHeight(newSize, Unit.PX);
    }

    void animateMole(int startSize, int endSize, int duration) {
      this.startSize = startSize;
      this.endSize = endSize;
      if (duration == 0) {
        onComplete();
        return;
      }
      run(duration);
    }
  }

用法:

  • 隐藏面板:

    animation.animateMole(heightMeasure.getOffsetHeight(),0,           animationDuration);

  • 显示:

    borderElement.getStyle()setDisplay(Display.BLOCK);
    animation.animateMole(0,heightMeasure.getOffsetHeight(),animationDuration);

borderElement - 容器DivElement和heightMeasure - 内部DivElement。