Скрыть / Показать анимацию - PullRequest
3 голосов
/ 26 апреля 2011

Я хотел бы знать, возможно ли сделать анимацию на панели скрытия / показа с простым gwt (без дополнительных библиотек).

Любые предложения приветствуются.

Спасибо

Ответы [ 2 ]

3 голосов
/ 26 апреля 2011

Может быть, вы найдете этот код полезным из 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.

3 голосов
/ 26 апреля 2011

Классы макетов GWT поддерживают анимацию. Проверьте Layout, DockLayout ru SplitLayout. Кроме того, существует класс Animation, который используется на нескольких панелях для использования анимации для отображения / скрытия содержимого. Просто проверьте классы, используя класс Animation.

...