gpt4 book ai didi

javascript - 我在 @Component 中遇到主机问题

转载 作者:行者123 更新时间:2023-11-27 23:17:56 25 4
gpt4 key购买 nike

如何使我的动画在我的浏览器上运行?特别是在@Component 中使用主机之后

这是我的 menu.component.ts:

@Component({
selector: 'app-menu',
templateUrl: './menu.component.html',
styleUrls: ['./menu.component.scss'],
host: {
'[@flyInOut]': 'true',
'style': 'display: block;'
},
animations: [
flyInOut()
]
})

这是我的 app.animation.ts:

export function flyInOut() {
return trigger('flyInOut', [
state('*', style({
opacity: 1,
transform: 'translateX(0)'
})),
transition(':enter',[
style({transform: 'translateX(-100%)',
opacity: 0
}),
animate('500ms ease-in')
]),
transition(':leave', [
animate('500ms ease-out', style({
transfrom: 'translateX(100%)',
opacity: 0
}))
])
])
}

我希望动画能在浏览器上运行,但在我使用主机后它却无法运行。

最佳答案

我遇到了类似的问题。我通过将函数直接放在我的组件中而不是使用导出的函数来解决它。

export function slideToLeft () {
return [
query(':enter, :leave', [
style({
position: 'absolute',
top: 0,
left: 0,
width: '100%'
})
], { optional: true }),
query(':enter', [
style({ left: '-100%'})
]),
group([
query(':leave', [
animate('600ms ease', style({ left: '100%'}))
], { optional: true }),
query(':enter', [
animate('600ms ease', style({ left: '0%'}))
])
]),
];
}

@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
animations: [
trigger('routeAnimations', [
transition('FirstPage => SecondPage', slideToRight())
])
]
})
export class AppComponent implements ...
const routes: Routes = [
{
path: 'home/firstPage',
component: FirstPageComponent,
canActivate: [AuthGuard],
data: {
animation: 'FirstPage'
},
},
{
path: 'home/secondPage',
component: SecondPageComponent,
canActivate: [AuthGuard],
data: {
animation: 'SecondPage'
},
}
]

@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class RoutingModule { }

关于javascript - 我在 @Component 中遇到主机问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58167598/

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