Подтвердить что ты не робот

Магистральная магистраль - добавление визуального эффекта при переключении вида

Есть ли удобный способ добавить эффект, когда я покидаю страницу (закрываю представление/макет) и открываю новую в том же регионе? (что-то вроде эффекта затухания)

4b9b3361

Ответ 1

Области Marionette имеют метод под названием open, который по умолчанию просто заменяет HTML старого представления новым представлением. Вы можете переопределить этот метод, чтобы сделать любую понравившуюся анимацию. В документации по регионам:

Установить способ просмотра el

Если вам нужно изменить способ подключения представления к DOM, когда показывая представление через область, переопределите метод open область. Этот метод получает один параметр - представление для отображения.

Реализация по умолчанию open по умолчанию:

Marionette.Region.prototype.open = function(view){
  this.$el.html(view.el);
}

Это заменит содержимое региона на представление el/content. Вы можете изменить это на все, что пожелаете, хотя, облегчая эффекты перехода и многое другое.

Marionette.Region.prototype.open = function(view){
  this.$el.hide();
  this.$el.html(view.el);
  this.$el.slideDown("fast");
}

Этот пример приведет к тому, что представление будет скользить вниз региона, а не просто появляться на месте.

Ответ 2

Вы можете переопределить функцию close на представлении, сделав что-то вроде этого:

close: function () {
  // fancy fade-out effects
  Backbone.Marionette.View.prototype.close.apply(this, arguments);
}

И сделайте что-то подобное с вашими функциями render.

Ответ 3

Кажется, это работает для меня:

this.views = {
    messageItem: Marionette.ItemView.extend({
        template: Handlebars.templates.messaging_item,
        tagName: "li",
        className: "messaging-item",
        render: function(){
            this.$el.html(this.template(this.model.attributes));
            this.$el.hide();
        },
        onShow: function(){
            this.$el.slideDown(800);
        }
    })
};

Ответ 4

Для будущих пользователей пользователи могут использовать мой плагин для поддержки перехода в марионетке.

https://github.com/saqibshakil/Marionette.TransitionRegion/

Я использовал css3-переходы, поскольку у них больше аппаратная поддержка, чем анимация jquery. на нижней стороне, используя это делает асинхронный код, поэтому будьте осторожны с этим.

Ответ 5

Я думаю, это может быть полезно для вас.

Следующий плагин для марионетки, который добавляет 4 вида переходов. Там может быть легко добавлено больше типов перехода.

В основном вместо использования yourRegion.show(view)... вы можете использовать теперь yourRegion.showAnimated(view, {animationType: 'yourAnimation'});

он очень прост в использовании.

https://github.com/marcinkrysiak1979/marionette.showAnimated

см. документацию по github для получения дополнительной информации