今天有空把css3里面动画研究一下,都是一些简单的东西,但是千里之行始于足下,我虽然走的慢,但是未停下前进的脚步,
下来看下我做的“淡入的文字”最终动态效果:
上面这个动画效果制作的过程是:
(1)先自定义一个透明度从0到1变化的动画,然后在animation中调用这个动画效果
(2)注意不同行文字出现的时间先后,这个通过animation中延时属性可以实现
(3)规定文字最终动态为动画的最终显示状态,否则文字显示完会自动消失,这个用animation-fill-mode可以实现
主体结构
|
|
由于只是单纯的练习css,暂时不牵扯太多js,文字都是提前布局好的,先来看下知识点
css3中动画属性
|
|
其中各种属性含义
- animation-name 规定需要绑定到选择器的 keyframe 名称。
- animation-duration 规定完成动画所花费的时间,以秒或毫秒计。(必须设置)
- animation-timing-function 规定动画的速度曲线。
- animation-delay 规定在动画开始之前的延迟。
- animation-iteration-count 规定动画应该播放的次数。
- animation-direction 规定是否应该轮流反向播放动画。
animation-name
animation-name是@keyframes动画规定名称,关于keyframes用法如下
或者
结合本次写的主题是文字淡入,即透明度从0到1的动画,那么写一个fade-in的动画
animation-duration
动画完成所需花费的全部时间,默认值为0,如果想做动画,则时间不能为0,要不然看不到效果
animation-timing-function
animation-timing-function 使用名为三次贝塞尔(Cubic Bezier)函数的数学函数,来生成速度曲线。您能够在该函数中使用自己的值,也可以预定义的值
- linear 动画从头到尾的速度是相同的。
- ease 默认。动画以低速开始,然后加快,在结束前变慢。
- ease-in 动画以低速开始。
- ease-out 动画以低速结束。
- ease-in-out 动画以低速开始和结束。
- cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。
关于贝塞尔曲线,网上有很多帮助生成曲线的工具,可以自己搜索一下
animation-delay
规定在动画开始之前的延迟。为负值代表跳过多少秒的动画立马开始
animation-iteration-count
- n 定义动画播放次数的数值。
- infinite 规定动画应该无限次播放。
animation-direction
- normal 默认值。动画应该正常播放。
- alternate 动画应该轮流反向播放。
结合本次写的淡入文字的题目,总体来说animate代码如下:
animation-fill-mode
这个是最重要的,让动画停在某个状态,以本次淡入文字为例,文字透明状态从0变为1,最后需要停在1状态,需要用到这个属性
- none 不改变默认行为。
- forwards 当动画完成后,保持最后一个属性值(在最后一个关键帧中定义)。
- backwards 在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)。
- both 向前和向后填充模式都被应用。
全部的css
|
|
面的程序我在注释里面都写得很清楚,感兴趣的可以看我写的注释,我觉得比较简单,没有难度,但是需要注意浏览器前缀的添加,否则你懂得.