返回

动态改变动画效果

动画效果一般有两种方法实现:transtion 和 animation

但是这些动画都是基于css实现的,也就是说我们单纯的用他们只能得到固定的动画。当遇到较为复杂的动画,每次需要的效果都不一样怎么办?我们举个常见的例子吧,抽奖的指针,我们为了让指针效果更逼真,需要随机出一个角度没让指针从 0 转到这个角度并逐渐减速。

一、transtion

transtion 动画需要触发,所以用这个实现最简单,只需要我们动态改变 transtion 的结束状态就可以了,如例子中的第二个。

二、animation

但是我们知道对于一些复杂的动画 transtion 就不合适了,这是我们会使用 animation 来定义关键帧,所以 animation 动画效果更复杂,但同时动态修改关键帧也更为复杂。具体实现方法可以看我的例子中的第一种,和拓展阅读,当然对于抽奖动画这种方法小题大做了。

See the Pen 动态改变动画效果 by zhangchen (@zhangchen915) on CodePen.

拓展阅读: Using JavaScript to set @keyframes in CSS animations

Licensed under CC BY-NC-SA 4.0