1. transition 过渡动画
给 dom 元素添加变形、变形的过程添加动画
/* 元素变形种类 2D */
/* 移动:translate(100px, 100px) 水平和垂直方向各移动100px。*/
/* 旋转:rotate(60deg) 顺时针旋转60度 */
/* 缩放:scale(0.5) 缩小一半, 1表示不表,大于1是放大 */
/* 倾斜:skew(30deg, 30deg) 水平和垂直方向和顺时针倾斜30度。*/
.active {
transform: translate(100px, 100px) rotate(60deg) scale(0.5) skew(30deg, 30deg);
/* transition: 过渡的属性 完成时间(s) 运动曲线 延迟时间 */
/* 运动曲线: ease:减速、linear:匀速、ease-in:加速、ease-out:减速、*/
/* ease-in-out:先加后减、cubic-bezier(n,n,n,n):三次贝塞尔定义 */
transition: all 3s linear 0s;
}
/* 元素变形种类 3D */
/* 3D 变形首先要给变形DOM一个父级DOM,并且父级DOM设置 perspective, 添加透视效果*/
/* 旋转:rotateX(), rotateY(),rotateZ() 围绕X,Y,Z轴旋转 */
/* 移动:translateX(),translateY(),translateZ() 延X,Y,Z轴平移*/
.father {
perspective: 500px;
}
2. animation 动画
/* 定义动画 */
@keyframes demo {
0% {
transform: translate(0px);
}
100% {
transform: translate(200px);
}
}
/* or */
@keyframes demo {
from {
transform: translate(0px);
}
to {
transform: translate(200px);
}
}
/* 使用动画 */
div {
/* 简写 */
/* animation:动画名称 动画时长(有这两个即可以完成动画,其它未设置,有默认值) */
animation: demo 2s;
/* animation:动画名称 动画时长 动画运动速度 延迟时间 执行次数 往返动画 */
animation: demo 2s linear 0 infinite;
/* 详写 */
/* 动画名称 */
animation-name: demo;
/* 持续时间 */
animation-duration: 1s;
/* 运动曲线 和 transition 的运动曲线一样 */
animation-timing-function: linear;
/* 何时开始 */
animation-delay: 0;
/* 重复次数 iteration 重复的 count 次数 infinite无限 */
animation-iteration-count: infinite;
/* 是否反方向播放 默认normal 想反方向就写alternate*/
animation-direction: alternate;
/* 动画结束后状态默认backwards 回到起始状态 我们可以让他停留在结束状态forwards */
animation-fill-mode: forwards;
}