9-过度和动画
CSS表格
过渡(transition)
- 通过过渡可以指定一个属性发生变化时的切换方式
- 通过过渡可以创建一些非常好的效果,提升用户的体验
属性值
transition-property:指定要执行过渡的属性
- 多个属性间使用
,隔开; - 如果所有属性都需要过渡,则使用
all关键字; - 大部分属性都支持过渡效果;
- 注意过渡时必须是从一个有效数值向另外一个有效数值进行过渡;
transition-duration:指定过渡效果的持续时间
- 时间单位:s 和 ms(1s=1000ms)
transition-delay:过渡效果的延迟,等待一段时间后在执行过渡
transition-timing-function:过渡的时序函数
linear匀速运动ease默认值,慢速开始,先加速后减速ease-in加速运动ease-out减速运动ease-in-out先加速后减速cubic-bezier()来指定时序函数 https://cubic-bezier.com```
steps()1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
分步执行过渡效果,可以设置第二个值:
- `end`,在时间结束时执行过渡(默认值)
- `start`,在时间开始时执行过渡
`transition`:可以同时设置过渡相关的所有属性
- 只有一个要求,如果要写延迟,则两个时间中第一个是持续时间,第二个是延迟时间
**示例**
```css
/* transition: margin-left 2s 1s; */
transition-property: margin-left;
transition-duration: 2s;
transition-delay: 1s;

几种过渡效果对比
linear匀速运动
1 | transition-timing-function: linear; |

ease 默认值,慢速开始,先加速后减速
1 | transition-timing-function: ease; |

ease-in 加速运动
1 | transition-timing-function: ease-in; |

ease-out 减速运动
1 | transition-timing-function: ease-out; |

ease-in-out 先加速后减速
1 | transition-timing-function: ease-in-out; |

cubic-bezier()来指定时序函数
1 | transition-timing-function: cubic-bezier(0.17, 1.79, 0.68, -0.69); |

steps()分步执行过渡效果
1 | /* transition-timing-function: steps(2, end); */ |

1 | transition-timing-function: steps(2, start); |

实战米兔
1 | .mitu{ |

动画
动画和过渡类似,都是可以实现一些动态的效果,不同的是
- 过渡需要在某个属性发生变化时才会触发
- 动画可以自动触发动态效果
设置动画效果,必须先要设置一个关键帧,关键帧设置了动画执行每一个步骤
1 | @keyframes test { |
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
练习米兔
1 | <style> |
效果同上
