过渡与动画
1、过渡
过渡(transition
)
- 通过过渡可以指定一个属性发生变化时的切换方式
- 通过过渡可以创建一些非常好的效果,提升用户的体验
属性值
transition-property
:指定要执行过渡的属性- 多个属性间使用
,
隔开 - 如果所有属性都需要过渡,则使用
all
关键字(默认值) - 大部分属性都支持过渡效果
- 注意过渡时必须是从一个
有效数值
向另外一个有效数值
进行过渡
- 多个属性间使用
transition-duration
:指定过渡效果的持续时间- 时间单位:
s
和ms
(1s=1000ms)
- 时间单位:
transition-delay
:过渡效果的延迟,等待一段时间后再执行过渡
transition-timing-function
:过渡的时序函数- 简写属性:
transition
- 必须指明持续时间
- 如果要写延迟,则两个时间中第一个是持续时间,第二个是延迟时间
2、动画
动画和过渡类似,都是可以实现一些动态的效果,不同的是
- 过渡需要在某个属性发生变化时才会触发
- 动画可以自动触发动态效果
设置动画效果,必须先要设置一个关键帧
(@keyframes
),关键帧设置了动画执行每一个步骤
@keyframes test {
/*
以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%。
0% 是动画的开始时间,100% 动画的结束时间。
必须定义 0% 和 100% 选择器。
*/
from {
margin-left: 0;
}
to {
margin-left: 900px;
}
}
属性值
animation-name
指定动画的关键帧名称
animation-duration
指定动画效果的持续时间
animation-delay
动画效果的延迟,等待一段时间后在执行动画
animation-timing-function
动画的时序函数,详细参考过渡
animation-iteration-count
动画执行的次数infinite
无限次
animation-direction
指定动画运行的方向,可选值:normal
从from向to运行,每次都是这样,默认值reverse
从to向from运行,每次都是这样alternate
从from向to运行,重复执行动画时反向执行alternate-reverse
从to向from运行,重复执行动画时反向执行
animation-play-state
设置动画的执行状态running
动画执行,默认值paused
动画暂停
animation-fill-mode
动画的填充模式none
动画执行完毕,元素回到原来位置,默认值forwards
动画执行完毕,元素会停止在动画结束的位置backwards
动画延时等待时,元素就会处于开始位置both
结合了forwards和backwards
- 简写属性:
animation
- 必须指定动画的关键帧名称和持续时间
- 如果要写延迟,则两个时间中第一个是持续时间,第二个是延迟时间