CSS动画
CSS中的动画类型
transition补间动画(有开头有结尾,浏览器自己补中间)
要求元素状态有变化,如hover
.container{width:100px;height:100px;background:red;transition:width 1s;/*transition-delay:1s 延迟一秒再动*//*tranisition: 延迟时间 哪个属性 动画时间,可以有多个; *//*transition-timing-function: 动画的时间和进度之间的关系*/
}
.container:hover{width:800px;
}
keyframe关键帧动画
指定动画的关键路径,如A -> B -> C它们之间由补间动画自动补出来。相当于多的补间动画组合在一起,但是与元素的状态无关。
.container{width: 100px;height: 100px;background: red;animation: run 1s;/*animation-direction:reverse 正向还是反向*//*animation-iteration-count: 循环次数 infinite(循环次数)*//*animation-play-state: paused 动画暂停*//*animation-fill-mode: forwards(动画完成停在最后) backwards(回到一开始的地方)*/
}
@keyframes run {0%{width: 100px;}100%{width: 800px;}
}
逐帧动画
每一帧都是关键帧,没有补间的动画。
.container{width: 100px;height: 100px;border: 1px solid red;background: url(./animal.png) no-repeat;animation: run 1s infinite;animation-timing-function: steps(1);
}
@keyframes run{0%{background-position: 0 0;}12.5%{background-position: -100px 0;}37.5%{background-position: -300px 0;}
}
面试题
CSS动画的实现方式有几种
transition
keyframes(animation)
过度动画和关键帧动画的区别
过度动画需要有状态变化
关键帧动画不需要状态变化
关键帧动画能控制更精细