ページを離れて(ビュー/レイアウトを閉じて)同じ領域で新しいページを開くときに効果を追加する便利な方法はありますか?(フェード効果のようなもの)
5 に答える
マリオネット領域には、open
デフォルトで古いビューのHTMLを新しいビューに置き換えるだけのメソッドがあります。このメソッドをオーバーライドして、好きなアニメーションを実行できます。地域のドキュメントから:
ビューのel
アタッチ方法を設定する
リージョンを介してビューを表示するときにビューがDOMにアタッチされる方法を変更する必要がある場合はopen
、リージョンのメソッドをオーバーライドします。このメソッドは、表示するビューという1つのパラメーターを受け取ります。
のデフォルトの実装open
は次のとおりです。
Marionette.Region.prototype.open = function(view){
this.$el.html(view.el);
}
これにより、リージョンのコンテンツがビューの
el
/コンテンツに置き換えられます。ただし、トランジション効果などを容易にするために、これに変更することができます。
Marionette.Region.prototype.open = function(view){
this.$el.hide();
this.$el.html(view.el);
this.$el.slideDown("fast");
}
この例では、ビューが所定の位置に表示されるのではなく、領域の上部から下にスライドします。
close
次のようにして、ビューの関数をオーバーライドできます。
close: function () {
// fancy fade-out effects
Backbone.Marionette.View.prototype.close.apply(this, arguments);
}
そして、あなたのrender
関数と同じようなことをしてください。
これは私にとってはうまくいくようです:
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);
}
})
};
将来のユーザーのために、人々はマリオネットの移行サポートのために私のプラグインを使用することができます。
https://github.com/saqibshakil/Marionette.TransitionRegion/
css3トランジションは、jqueryアニメーションよりもハードウェアをサポートしているため、使用しました。欠点として、これを使用するとコードが非同期になるため、注意が必要です。
これはあなたにとって役立つと思います。
4種類のトランジションを追加する次のマリオネットプラグイン。遷移タイプを簡単に追加できます。
基本的に、yourRegion.show(view)を使用する代わりに... yourRegion.showAnimated(view、{animationType:'yourAnimation'});を使用できるようになりました。
とても使いやすいです。
https://github.com/marcinkrysiak1979/marionette.showAnimated
詳細については、githubのドキュメントを参照してください