过渡与动画
过渡(最低支持 IE10)
- 过渡的基本使用
- transition 过渡属性是CSS3浓墨重彩的特性,过渡可以为一个元素在不同的样式之间变化自动添加“补间动画”
- 优点:动画更细腻,内存开销小
- transition: width 1s linear 0s;
- 如果所有属性要参与过渡,可以写 all
- 参数说明:什么属性需要过渡,动画时长,变化速度曲线,延迟时间
过渡的四个小属性- transition-duration 动画时间
- transition-property 哪些属性要过渡
- transition-timing-function 动画变化曲线(缓动效果)
- ease
- linear
- ease-in
- ease-out
- ease-in-out
- 贝塞尔曲线
- 可以通过 https://cubic-bezier.com/ 这个网址自定义动画缓动参数
- transition-delay 延迟时间
- 哪些属性可以参与过渡?
- 所有数值属性都可以参与过渡,比如
- width
- height
- left
- top
- border-radius
- 背景颜色和文字颜色都可以被过渡
- 所有变形(包括2D和3D)都能被过渡
- 所有数值属性都可以参与过渡,比如
- 过渡的缓动效果(参考 transition-timing-function 属性)
动画
- 动画的定义和调用
可以使用 @keyframes 来定义动画,keyframes 表示“关键帧”,在项目上线前,要补上@-webkit-这样的私有前缀
定义动画后,就可以用 animation 属性调用动画
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>动画的定义</title>
<style>
@keyframes r{
from {
transform: rotate(0);
}
to {
transform: rotate(360deg);
}
}
.box1 {
width: 200px;
height: 200px;
border: 1px solid #333;
animation: r 1s linear 0s;
}
</style>
</head>
<body>
<div class="box1"></div>
</body>
</html>animation: r 1s ease 3s 3;
- 动画的参数:动画的名称,执行的时间,动画效果,延迟时间,执行次数
- 如果想永远设置执行就是 infinite 属性
- 如果想让动画的第2、4、6…..(偶数次)自动逆向执行,那么要加上 alternate 参数即可
- 如果想让动画停止在最后结束状态,那么要加上 forwards
多关键帧动画
1
2
3
4
5
6
7
8
9
10
11
12
13@keyframes changeColor {
0% {
background-color: red;
}
50% {
background-color: yellow;
}
100% {
background-color: aqua;
}
}