标签: angular-animations

Angular2将动画绑定到伪元素

我正在尝试使用Angular2动画系统,用于伪元素:before.根据动画流程,我需要定义动画状态:

animations: [
trigger('heroState', [
  state('inactive', style({
    backgroundColor: '#eee',
    transform: 'scale(1)'
  })),
  state('active',   style({
    backgroundColor: '#cfd8dc',
    transform: 'scale(1.1)'
  })),
  transition('inactive => active', animate('100ms ease-in')),
  transition('active => inactive', animate('100ms ease-out'))
])]
Run Code Online (Sandbox Code Playgroud)

然后将其附加到DOM元素,如下所示:

<ul>
<li *ngFor="let hero of heroes"
    [@heroState]="hero.state"
    (click)="hero.toggleState()">
  {{hero.name}}
</li>
Run Code Online (Sandbox Code Playgroud)

但是,我想将其附加到伪before元素.我怎样才能做到这一点?

angular angular-animations

17
推荐指数
1
解决办法
764
查看次数

无法使用动画来使用md-tab-nav-bar/md-tab-link

我切换MdTabGroupmd-tab-nav-bar/ md-tab-link指令,以便能够将路由分配给各个标签页.不幸的是,我在这个过程中丢失了滑入式动画(似乎没有指令的动画),所以我试图模仿行为MdTab到目前为止没有成功.

这是使用tab指令的模板:

<div class="ink-results" *ngIf="model && (model | async).length > 0" >
    <nav md-tab-nav-bar>
        <a md-tab-link
            *ngFor="let browser of model | async;trackBy: trackByBrowserId"
            [routerLink]="['/results', browser.id]"
            routerLinkActive #rla="routerLinkActive"
            [active]="rla.isActive">
            {{browser.name}}
        </a>
    </nav>
    <router-outlet></router-outlet>
</div>
Run Code Online (Sandbox Code Playgroud)

这是路由到的模板:

<div class="ink-explorer">
    <div class="ink-items">
        <div class="ink-item"
            [@flyInOut]="state"
            *ngFor="let result of results | async;trackBy: trackById"
            routerLinkActive="ink-active-item">
            <a [routerLink]="[result.id]">
                <md-icon svgIcon="flask" 
                    [ngClass]="{ 'ink-failed': (result.status === 2), 'ink-pending': result.status === 4, 'ink-success': result.status === 6 }">
                </md-icon>
                <div class="ink-item-title">{{result.description}}</div>
            </a>
        </div> …
Run Code Online (Sandbox Code Playgroud)

angular-material angular angular-animations

17
推荐指数
1
解决办法
1436
查看次数

Angular NoopAnimationsModule类型错误匹配元素不是函数

我为Angular 6应用程序导入NoopAnimationsModule后出现此错误

ERROR TypeError: this.driver.matchesElement is not a function
    at TransitionAnimationEngine.push../node_modules/@angular/animations/fesm5/browser.js.TransitionAnimationEngine.processLeaveNode (browser.js:2976)
Run Code Online (Sandbox Code Playgroud)

angular angular-animations angular6

17
推荐指数
2
解决办法
6605
查看次数

角度转换

我已经在Angular中创建了一个布局管理器,它可以接收组件,然后在视图中显示它,并在视图中显示每个组件时将动画添加到视图中.

在单个时刻,可以在视图中显示一个面板或最多两个面板.

这是Stackblitz link同样的问题,这是过渡不平滑,它也显示为流线型,因为它应该是设计如下.

设计

现在我想要实现的是当应用程序加载1-2时默认显示但是当我更改面板时,转换会像

1-3当2移动到视野之外它应该向左滑动和缓和而且3应该进入并且缓和.然后,如果从1-3开始我们进入2-3 1应该向右缓和,2应该滑入.

此外,面板可以占屏幕宽度的一些百分比(33%,66%或100%).

我不确定我是否能够正确地解释它我已经被困在这几个星期过渡如果有人可以帮助它会很棒,谢谢

感谢萨达姆帮助创建了这个动画,这正是我想要的动画 - https://imgur.com/a/qZ3vtDb这仅用于视觉目的

css-transitions angular angular-animations

16
推荐指数
1
解决办法
866
查看次数

Angular如何延迟/错开子组件内的动画

我有一个带动画的子组件

child.component.ts

@Component({
  selector: 'child',
  animations:[
    // animations
   ]
})
export class ChildComponent { ... }
Run Code Online (Sandbox Code Playgroud)

还有一个父组件,它在html中有2个子组件

parent.component.hmtl.ts

...
<child></child>
<child></child>
...
Run Code Online (Sandbox Code Playgroud)

Stackblitz示例

我想要实现的是错开父组件中子组件的动画.因此,第二个子组件应在X秒后开始动画.

animateChild()听起来可能有用,但我无法弄清楚如何使用它.这是正确的解决方案吗?如果是这样,一个例子真的很有帮助.

提前致谢

编辑:animateChild()似乎不适用于这种情况.看起来它只适用于父组件中定义的动画.

编辑2:我认为可能有一个解决方法是在子组件内部添加动画延迟.

child.component.ts

@Component({
  selector: 'child',
  animations:[
    animate(x),
    // animations
   ]
})
export class ChildComponent { ... }
Run Code Online (Sandbox Code Playgroud)

x将是一个为每个子组件增加的变量.这种解决方法对我来说有点混乱

EDIT3:到目前为止,anwers或多或少是我在第二次编辑中提到的解决方案.虽然这些确实有用,但我仍然认为这些是解决方法.

我正在寻找一个只涉及父组件的解决方案,因此子组件应该保持在这个非工作示例中的样子

angular angular-animations

15
推荐指数
1
解决办法
1267
查看次数

向下滑动动画Angular 4

我试图动画我的页面,但有以下问题:
我的页面上有内容div,以及在内容上方打开另一个div的按钮.我希望那个div能够褪色并滑入,并且下方也可以向下滑动.我为上面的div创建了我想要的动画,点击时打开,但不明白如何处理内容div,示例代码如下:

<div class="wrapper">
  <button (click)="animated = !animated"></button>
  <div *ngIf="animated" [@slideInOutAnimation] class="animated-div">
  THIS DIV IS ANIMATED</div>

  <div class="content">THIS IS CONTENT DIV</div>

</div>

TYPESCRIPT:
animations: [
trigger('slideInOutAnimation', [

  state('*', style({

  })),
  transition(':enter', [
    style({
      transform: 'translateY(-10%)',
      opacity: 0
    }),
    animate('.5s ease-in-out', style({
      transform: 'translateY(0)',
      opacity: 1
    }))
  ]),
  transition(':leave', [
    animate('.5s ease-in-out', style({
      transform: 'translateY(-10%)',
      opacity: 0
    }))
  ])
])
]
Run Code Online (Sandbox Code Playgroud)

我应该创建一些其他触发器来移动我的内容div与动画的内容吗?

css angular angular-animations

13
推荐指数
3
解决办法
2万
查看次数

如何在Angular 2中有条件地添加动画

我有一个表单组件,其中包含字段,某些字段我想在它们出现在表单中时进行动画处理,但不是每个字段.

<div *ngFor="let field of form.Fields">
    <div [ngSwitch]="field.Type" [@slideOut]>
        <!-- more field stuff -->
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

有了其他属性,我可以做这样的事情[attr.required]="field.Required"[attr.@slideOut]似乎没有用.

理想情况下,我想在我的场上有一个动画属性,所以我可以传递这样的动画,[@field.Animation]但我找不到任何关于如何做这样的事情的文档.有任何想法吗?

animation angular angular-animations

12
推荐指数
2
解决办法
7104
查看次数

MatSort 打破 MatTable 细节行动画

在我来到这里之前,我一直在努力解决这个问题。本质上,我有一个使用动画创建细节行的 Angular Material 表。当表格排序时,它会重新排列数据。在此过程中,某些详细信息行会转换为 void。之后,即使动画事件正在触发,细节行也会停止播放动画。我怀疑 MatSort 以某种方式破坏了动画,但我不确定如何。

角材料表:

<mat-table matSort
        [dataSource]="tableData"
        multiTemplateDataRows>

        <!-- More Column -->
        <ng-container matColumnDef="more">
            <mat-header-cell *matHeaderCellDef 
                translate>
                More
            </mat-header-cell>
            <mat-cell *matCellDef="let scheduleCourse">
                <p class="fa fa-angle-right" *ngIf="!tableData.checkExpanded(scheduleCourse)"></p>
                <p class="fa fa-angle-down" *ngIf="tableData.checkExpanded(scheduleCourse)"></p>
            </mat-cell>
        </ng-container>

        <!-- Meets Column -->
        <ng-container matColumnDef="meets">
            <mat-header-cell *matHeaderCellDef
                mat-sort-header="Meets" 
                translate>
                Meets
                <filter [data]="tableData" columnName="Meets" dataType="string"></filter>
            </mat-header-cell>
            <mat-cell *matCellDef="let scheduleCourse">
                {{scheduleCourse.Meets}}
            </mat-cell>
        </ng-container>

        <!-- Term Column -->
        <ng-container matColumnDef="term">
            <mat-header-cell *matHeaderCellDef 
                mat-sort-header="Term"
                translate>
                Term
                <filter [data]="tableData" columnName="Term" dataType="string"></filter>
            </mat-header-cell>
            <mat-cell *matCellDef="let scheduleCourse">
                {{scheduleCourse.Term}}
            </mat-cell>
        </ng-container> …
Run Code Online (Sandbox Code Playgroud)

animation angular angular-animations

12
推荐指数
3
解决办法
2886
查看次数

如何在Angular中为*ngFor设置动画?

我需要在ngFor列表填充和显示时为其设置动画.每个元素都应该有一个转换,让我们说这样的话.

我怎样才能做到这一点?

transition angular angular-animations

11
推荐指数
2
解决办法
2万
查看次数

角度动画在IE边缘不起作用

我在Angular的组件中添加了一个动画.然而动画在Chrome和Firefox中运行得很好,但是在IE Edge中,动画不会被触发,尽管样式在状态更改时正确应用,但是没有指定动画.

有没有人有同样的问题?

这是我的代码:

animations: [
    trigger('rowState', [
        state('collapsed', style({
            'height': 0,
            'overflow-y': 'hidden'
        })),
        state('expanded', style({
            'height': '*',
            'overflow-y': 'hidden'
        })),
        transition('collapsed <=> expanded', [animate('1000ms ease-out')])
    ])
]
Run Code Online (Sandbox Code Playgroud)

提前致谢

microsoft-edge angular angular-animations

11
推荐指数
2
解决办法
4431
查看次数