【发布时间】:2015-02-01 05:45:10
【问题描述】:
目前,我发现在路线之间制作动画的唯一解决方案就是淡出当前页面onBeforeAction 并淡入新页面onAfterAction。但这只是蹩脚。
我想尝试执行some really sleek transitions like these。
我认为这需要同时在页面上呈现多个页面,但这似乎非常耗费资源,甚至似乎根本不使用铁路由器。
有什么想法可以实现吗?
【问题讨论】:
标签: meteor iron-router
目前,我发现在路线之间制作动画的唯一解决方案就是淡出当前页面onBeforeAction 并淡入新页面onAfterAction。但这只是蹩脚。
我想尝试执行some really sleek transitions like these。
我认为这需要同时在页面上呈现多个页面,但这似乎非常耗费资源,甚至似乎根本不使用铁路由器。
有什么想法可以实现吗?
【问题讨论】:
标签: meteor iron-router
我使用这样的解决方案http://meteorpad.com/pad/5kii9SRbbnjiTHeQe
MeteorPad 不允许使用 IronRouter,所以我的示例没有使用它。在 IronRouter 中,您可以使用 action() 方法设置“currentPage”会话变量并始终呈现“transitioner”模板。像这样的:
Router.map(function() {
this.route('home', {
path: '/',
action: function() {
Session.set('currentPage', 'home');
this.render('transitioner');
}
});
this.route('about', {
action: function() {
Session.set('currentPage', 'about');
this.render('transitioner');
}
});
});
我为此使用了一个包装器。它还可以帮助我定义过渡样式和方向。
请注意订阅/取消订阅,因为在过渡完成之前,上一页会对订阅更改做出反应!
【讨论】:
这个问题似乎被问了很多,而且没有明确的解决方案,而且很多答案都变得陈旧,或者至少不适用于最新的 Iron-router 和 Meteor 1.0。
我只是搜索了一堆最好的答案,至少今天看来这个包是:
https://github.com/percolatestudio/momentum-iron-router/ 和 https://github.com/ccorcos/meteor-transitioner/
前者有一段时间没有更新,但有很多提交。后者的提交很少,但可能正在积极处理中。
我正在试用它们,所以如果我记得我会回来查看。
【讨论】:
momentum-iron-router 时遇到了错误(以及其他一些人在问题页面上都有相同的问题。ccorcos:meteor-transitioner 工作得很好。很容易上手。