CSS动画的两大组成部分:transition和animation
CSS3Transition
基本用法
当鼠标放置于缩略图之上,缩略图会迅速变大,缩略图的变大是瞬间实现的
transition的作用在于,指定状态变化所需要的时间
|
|
指定transition适用的属性,只有height的变化需要1秒实现,其他变化(主要是width)依然瞬间实现
|
|
transition-delay
同一行transition语句中,可以分别指定多个属性,height和width的变化是同时进行的,跟不指定它们没有差别
|
|
让height先发生变化,等结束以后,再让width发生变化。实现这一点很容易,就是为width指定一个delay参数,width在1秒之后,再开始变化,也就是延迟(delay)1秒
|
|
transition-timing-function
transition的状态变化速度,默认不是匀速的,而是逐渐放慢,这叫做ease
|
|
除了ease以外,其他模式还包括
1.linear:匀速
2.ease-in:加速
3.ease-out:减速
4.cubic-bezier函数:自定义速度模式
|
|
transition的各项属性
transition的完整写法
|
|
这其实是一个简写形式,可以单独定义成各个属性
|
|
CSS3Animation
基本用法
CSS Animation需要指定动画一个周期持续的时间,以及动画效果的名称
当鼠标悬停在div元素上时,会产生名为rainbow的动画效果,持续时间为1秒。为此,我们还需要用keyframes关键字,定义rainbow效果
|
|
默认情况下,动画只播放一次。加入infinite关键字,可以让动画无限次播放
|
|
指定动画具体播放的次数,比如3次
|
|
animation-fill-mode
动画结束以后,会立即从结束状态跳回到起始状态。forwards表示让动画停留在结束状态
|
|
animation-fill-mode还可以使用下列值
1.none:默认值,回到动画没开始时的状态
2.backwards:让动画回到第一帧的状态
3.both: 根据animation-direction(见后)轮流应用forwards和backwards规则
animation-direction
动画循环播放时,每次都是从结束状态跳回到起始状态,再开始播放。animation-direction属性,可以改变这种行为
|
|
animation的各项属性
animation也是一个简写形式
|
|
这是一个简写形式,可以分解成各个单独的属性
|
|
keyframes的写法
keyframes关键字用来定义动画的各个状态
|
|
浏览器从一个状态向另一个状态过渡,是平滑过渡。steps函数可以实现分步过渡
|
|
animation-play-state
动画播放过程中,会突然停止。这时,默认行为是跳回到动画的开始状态
如果想让动画保持突然终止时的状态,就要使用animation-play-state属性
|
|