如何更改resetToPage的滑动方向?

时间:2015-03-18 07:01:10

标签: onsen-ui

我正在构建一个应用程序,其中有多个堆栈的堆栈 无论何时我想转到第一页,我都使用resetToPage。

navigator.resetToPage("page2.html", { animation: "slide" }):

默认它是从右向左转换我需要完全颠倒这类似于popPage转换。

我有办法实现它。

2 个答案:

答案 0 :(得分:2)

您可以在此处找到相关信息:http://onsen.io/guide/overview.html#Transitionanimation

基本上,您可以创建一个新的动画师并根据需要进行定义。这是OnsenUI存储库中的基本示例:https://github.com/OnsenUI/OnsenUI/blob/1.3.14/framework/views/simpleSlideTransitionAnimator.js

正如您所看到的,定义了两个函数:push和pop动画。 resetToPage()使用" push"像pushPage()这样的动画,不像popPage()。但是,如果你只想反转它,你可以创建一个新的动画师并定义它的" push"功能与之前的" pop"完全相同功能。你有一个简单的例子:

http://codepen.io/frankdiox/pen/azQMZE

如果更改转换函数的参数,您将获得不同的行为,因此您可以根据需要进行调整。希望它有所帮助!

答案 1 :(得分:0)

如果你navigator.popPage({animation: "slide"}),则动画反转。

因此,在您这样做之前,您只需在当前页面之前在堆栈中插入页面。

如果你想模拟resetToPage,你必须自己销毁以前的页面。

var pageStack = navigator.getPages();
for(var len = pageStack.length - 2, i = len ; i >= 0 ; i--) {
   pageStack[i].destroy();
}
navigator.insertPage( 0, "page2.html", { animation: "slide" } );
navigator.popPage({animation: "slide"});