angular 动画 - 无需用户交互即可更改状态
angular animation - changing the state without user interaction
希望有人能帮助我 - 看到这个 StackBlitz
我想要实现的是一个简单的高亮效果,其中元素的背景会短暂闪烁一种颜色,然后逐渐变回 FFF。
那里有两个按钮只是为了显示不同的过渡,但我想要的是用一种方法将它们连接在一起,使其闪烁和淡出。
我还想将动画与组件分开,因为我想重新使用它。
所以要更改状态,我认为我可以将 form.component.ts 中的 highlightState 的值设置为 true,然后立即将其设置回 false。尽管这两个语句几乎会立即执行,但我认为从 true 到 false 的较长转换会产生我想要的效果。实际发生的是我什么都看不到
我尝试使用 setTimeout()
,并在 highlight.ts 中保持过渡相同(仅使用 <=> 切换状态),但随后发生的只是高亮显示。
我知道这是基本的,我很失望我无法让它工作,但如果你能提供帮助,我将不胜感激。
我更喜欢使用关键帧动画。我想你错过了如果元素处于任何状态都应该出现的动画。为此,使用 *
。
这里* <=> *
表示不关心元素处于什么状态,只做动画
highlight.ts
export const highlight = trigger('highlight', [transition('* <=> *', useAnimation(
animation(
animate(
'500ms 0s',
keyframes([
style({ background: '#FFFFFF' }),
style({ background: '#ff0000' }),
style({ background: '#FFFFFF' })
])
)
)
))]);
希望有人能帮助我 - 看到这个 StackBlitz
我想要实现的是一个简单的高亮效果,其中元素的背景会短暂闪烁一种颜色,然后逐渐变回 FFF。
那里有两个按钮只是为了显示不同的过渡,但我想要的是用一种方法将它们连接在一起,使其闪烁和淡出。
我还想将动画与组件分开,因为我想重新使用它。
所以要更改状态,我认为我可以将 form.component.ts 中的 highlightState 的值设置为 true,然后立即将其设置回 false。尽管这两个语句几乎会立即执行,但我认为从 true 到 false 的较长转换会产生我想要的效果。实际发生的是我什么都看不到
我尝试使用 setTimeout()
,并在 highlight.ts 中保持过渡相同(仅使用 <=> 切换状态),但随后发生的只是高亮显示。
我知道这是基本的,我很失望我无法让它工作,但如果你能提供帮助,我将不胜感激。
我更喜欢使用关键帧动画。我想你错过了如果元素处于任何状态都应该出现的动画。为此,使用 *
。
这里* <=> *
表示不关心元素处于什么状态,只做动画
highlight.ts
export const highlight = trigger('highlight', [transition('* <=> *', useAnimation(
animation(
animate(
'500ms 0s',
keyframes([
style({ background: '#FFFFFF' }),
style({ background: '#ff0000' }),
style({ background: '#FFFFFF' })
])
)
)
))]);