如何设置Dialog窗口的动画?

时间:2018-02-23 22:23:31

标签: javascript angular typescript animation

我只是想在我的对话框窗口中添加一些动画,所以当用户点击显示按钮时,对话框应该来自顶部使用动画。我尝试在组件元数据上使用动画属性,但它似乎不起作用。我想要的一个简单例子是:

Example Animation

关于如何使这个动画有效的任何想法?非常感谢提前!

这是我的代码:

PLUNKER

app.component.ts

animations: [
trigger('slide-dialog', [
  state('inactive', style({
    transform: 'translate3d(10%, 0%, 0)'
  })),
  state('active', style({
    transform: 'translate3d(30%,20,0)'
  })),
  transition('active => inactive', animate('400ms ease'))
])

app.template.html

<p-dialog [@slide-dialog]="alertstate" header="Title" [(visible)]="display" width = '450' height = '200'
      [positionLeft]='positionLeft'
      [positionTop]='positionTop'>
      Content
</p-dialog>

1 个答案:

答案 0 :(得分:1)

尝试将[@slide-dialog]="alertstate"替换为[@slide-dialog]="display ? 'active' : 'inactive'"

此外,如果您希望在出现模态时应用动画,请替换

transition('active => inactive', animate('400ms ease'))

通过

transition('inactive => active', animate('400ms ease'))

修改

要进行下滑过渡,请将其添加到CSS:

.ui-dialog {
  top: inherit !important;
}

你的州应该看起来像:

        state('inactive', style({
            position: 'absolute',
            top: '0px'
        })),
        state('active', style({
            position: 'absolute',
            top: '150px'
        })),

见工作Plunker