gpt4 book ai didi

Angular 路线过渡 - 根据当前路线向左或向右滑动?

转载 作者:行者123 更新时间:2023-12-04 01:14:25 25 4
gpt4 key购买 nike

我关注了 this添加路线过渡动画的教程,它似乎有效,但我的应用程序中有超过 3 条路线。现在,当我转到带有 animation: 'isRight' 的页面时当我目前在 isLeft它按预期工作,但是当我已经在 isRight 上时并想转到当前页面右侧的另一个页面,它根本不显示任何过渡。
我如何根据我目前的位置进行过渡?我怎么知道我是否必须向左或向右过渡?
这是我的路线的一个例子:

const routes: Routes = [
{ path: 'page1', component: Page1Component, data: {animation: isLeft} },
{ path: 'page2', component: Page2Component, data: { animation: 'isRight' } },
{ path: 'page3', component: Page3Component, data: { animation: 'isRight' } },
{ path: 'page4', component: Page4Component, data: { animation: 'isRight' } },
{ path: 'page5', component: Page5Component, data: { animation: 'isRight' } },
{ path: 'page6', component: Page6Component, data: { animation: 'isRight' } },
];

那是我的动画:
export const slider =
trigger('routeAnimations', [
transition('* => isLeft', slideTo('left')),
transition('* => isRight', slideTo('right')),
transition('isRight => *', slideTo('left')),
transition('isLeft => *', slideTo('right'))
]);

function slideTo(direction) {
const optional = { optional: true };
return [
query(':enter, :leave', [
style({
position: 'absolute',
top: 0,
[direction]: 0,
width: '100%'
})
], optional),
query(':enter', [
style({ [direction]: '-100%'})
]),
group([
query(':leave', [
animate('600ms ease', style({ [direction]: '100%'}))
], optional),
query(':enter', [
animate('600ms ease', style({ [direction]: '0%'}))
])
]),
// Normalize the page style... Might not be necessary

// Required only if you have child animations on the page
query(':leave', animateChild()),
query(':enter', animateChild()),
];
}

最佳答案

使用 :increment 很容易做到和 :decrement转换选择器值。您可以定义每条路由具有 animation 的路由。数据的属性按如下递增顺序设置为数值 -

const routes: Routes = [
{ path: 'one', component: CompOneComponent, data: { animation: 0 } },
{ path: 'two', component: CompTwoComponent, data: { animation: 1 } },
{ path: 'three', component: CompThreeComponent, data: { animation: 2 } },
{ path: 'four', component: CompFourComponent, data: { animation: 3} },
];
那么你的 transitions应该像 -
trigger('routeAnimations', [
transition(':increment', slideTo('right') ),
transition(':decrement', slideTo('left') ),
]);
退房 this stackblitz example .另请参阅 this angular document所有细节。

关于 Angular 路线过渡 - 根据当前路线向左或向右滑动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63803245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com