【问题标题】:animate with material theme colors使用材质主题颜色制作动画
【发布时间】:2019-02-15 10:45:44
【问题描述】:

我有 2 个带有角度材质(浅色和深色)的主题,并希望在我的组件中利用角度动画。我想知道是否有办法将“重音”和“原色”等颜色添加到动画中。

这里有一些代码:

animations: [
        trigger('ClickLike', [
            state('idle', style({
                opacity: 1,
                color: 'primary'
            })),
            state('clicking', style({
                opacity: 0.2,
                color: 'accent'
            })),
            transition('idle => clicking', [
                animate('200ms')
            ]),
            transition('clicking => idle', [
                animate('150ms')
            ])
        ])
    ]

显然,这是行不通的,因为没有“口音”或“主要”。我知道我可以将 css 类与 [ngClass] 结合使用来获得相同的动画,但就像我说的那样,我想用角度来做。

【问题讨论】:

    标签: angular angular-material angular-material2


    【解决方案1】:

    棘手,但你可以。

    首先,您必须获取主题的 Material 颜色。

    创建一个简单的组件并设置它的颜色。

    <button #matColorRefBtn color="primary" mat-raised-button [style.display]="'none'"></button>
    

    现在,您可以在动画参数中使用引用:

    <div [@ClickLike]="{ value: yourValueForTheAnimation, params: {primaryColor: matColorRefBtn.style.backgroundColor }}"></div>
    

    现在,您可以在动画中使用参数:

    animations: [
            trigger('ClickLike', [
                state('idle', style({
                    opacity: 1,
                    color: '{{ primaryColor }}'
                })),
                ...
            ])
        ]
    

    【讨论】:

    猜你喜欢
    • 2018-10-12
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 2020-07-10
    • 2019-05-12
    • 2019-03-31
    相关资源
    最近更新 更多