EmberJS Добавляет анимации в DIV для Fade Out и Fade In на мероприятии Actions

Я новичок в Ember, но почти закончил то, что я намеревался сделать. Мне просто нужно оживить вещи как последний шаг.

Я использую animate.css и animateCSS для моей анимации.

У меня есть набор тегов. Когда пользователь нажимает на каждую кнопку, я вызываю действие onBtnClicked в моем контроллере. Когда эта кнопка нажата, я в основном изменяю свойство selectedImage на своем контроллере на другой URL. Свойство selectedImage автоматически обновляет тег и изображение изменяется на веб-сайте.

То, что я хотел бы сделать, - это когда пользователь нажимает на кнопку, чтобы запустить анимацию для перехода из выбранного элемента изображения и перехода в новом изображении.

Я в состоянии выполнить анимацию, но selectedImage обновляется слишком быстро, и, таким образом, новое изображение transitionedOut и transitionedIn.

Если у вас есть какие-либо советы о том, как эффективно обрабатывать анимацию перехода, это будет очень полезно.

2 ответа

Вы можете просто сначала запустить анимацию transitionOut, и только тогда, когда она полностью установит свойство. Что-то вроде этого:

  actions: {
    select: function(item) {
      var me = this;
      Ember.$("img").fadeOut(function() {        
        me.set('currentImage', item);
        Ember.$("img").fadeIn();
      });
    }
  }

Я сделал небольшую демонстрацию с анимацией jQuery (animateCSS, кажется, использует те же обратные вызовы) http://emberjs.jsbin.com/hiyatajeve

Из коробки Ember не поддерживает анимированные переходы, так как при выходе из системы он просто удаляет частичный шаблон из DOM. А также Ember.View крючки не поддерживают обещания.

Мне лично не нравится управлять представлениями из контроллеров, это еще один уровень абстракции.

Поэтому я бы порекомендовал вам использовать Liquid Fire Addon, который заставляет Ember обрабатывать анимированные переходы естественным образом.

Другие вопросы по тегам