CSS动画

205 阅读2分钟

主要分为三个属性

1.transition 实现渐变动画,这种方式允许元素在状态改变时平滑地过渡。它一共有四个值

transition: [] [] [] [];

---1.需要过渡的CSS属性名,可以是单个属性或多个属性,用逗号分隔。例如,widthheightbackground-color等。如果你想为所有可过渡属性设置过渡效果,可以使用all

---2.指定过渡效果的持续时间,以秒(s)或毫秒(ms)为单位。例如,2s表示2秒

---3.定义过渡效果的时间曲线,控制过渡的速度。例如,ease表示开始和结束慢,中间快;linear表示速度始终保持一致;ease-in表示开始慢,然后变快;ease-out表示开始快,然后变慢;ease-in-out表示开始和结束都慢,中间部分快。

---4.指定过渡效果开始前的延迟时间,以秒(s)或毫秒(ms)为单位。例如,1s表示延迟1秒后开始过渡效果。

2.Transform实现转变动画:旋转、缩放、倾斜和移动等操作。

rotate(旋转)缩放(scale)、倾斜(skew)、移动(translation)

1.---rotate旋转的角度可以是正数(顺时针旋转)或负数(逆时针旋转)。

2.---scale例:要将一个元素的宽度和高度都缩小到原来的一半。

.element {
transform: scale(0.5, 2); /* 宽度缩小到一半,高度放大到两倍 */
}

3.---Skew函数用于在X轴或Y轴上倾斜元素。

X轴 负数为向左倾斜 正数为向右倾斜 Y轴 负数为向上倾斜 正数为向下倾斜

4.---translation

transform: translate(50px, 100px); /* 向右移动50像素,向下移动100像素 /
transform: translate(-50px, -100px); /
向左移动50像素,向上移动100像素 */

3.animation性用于创建复杂的动画效果,它允许你定义关键帧,并控制动画的持续时间、延迟、迭代次数

@keyframes example {

0% {background-color: red;} /* 动画开始时 */

25% {background-color: yellow;} /* 动画25%时 */

50% {background-color: blue;} /* 动画50%时 */

100% {background-color: green;} /* 动画结束时 */

}

animation-duration: 4s; /* 动画完成一个周期所需的时间 /
animation-delay: 2s; /
动画开始前的延迟时间 /
animation-iteration-count: infinite; /
动画播放的次数,infinite表示无限次 */

div {
width: 100px;
height: 100px;
animation: example 4s 2s infinite; /* 动画名称、持续时间、延迟、迭代次数 */
}

div {
width: 100px;
height: 100px;
animation: example 4s 2s infinite; /* 动画名称、持续时间、延迟、迭代次数 */
}

---你还可以控制动画的速度曲线

animation-timing-function: ease-in-out;

---动画的方向

animation-direction: alternate;

---动画的播放状态

animation-play-state: paused; /* 暂停动画 */

animation-play-state: running; /* 播放动画 */