CSS3动画
动画(animation)
是CSS3中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果.
相比较过渡,动画可以实现更多变化,更多控制,连续自动播放等效果.
动画的基本使用
制作动画分两步:
先定义动画
再使用(调用)动画.
用keyframes定义动画(类似定义类选择器)
@keyframes 动画名称 {
0% {
width:100px;
}
100% {
height:200px;
}
}
动画序列
0%是动画的开始,100%是动画的完成,这样的规则就是动画序列,里面的百分比就是总的时间的划分.
在@keyframes中规定某项CSS样式,就能创建由当前样式逐渐改成新样式的动画效果.
动画是使元素从一种样式逐渐变化为另一种样式的效果,你可以改变任意多的样式任意多的次数.
请用百分比来规定变化发生的时间,或用关键词'from'和'to',等同于0%和100%.
元素使用动画
div {
animation-name:动画名称;
animation-duration:持续时间;
}
现在尝试做一个动画效果,还是非常好玩的,不需要鼠标经过,自动就会有动画.
<style>
@keyframes move {
0% {
transform: translate(0px, 0px)
}
50% {
transform: translate(100px, 100px);
}
100% {
transform: translate(200px, 0px);
}
}
.box {
width: 200px;
height: 200px;
background-color: forestgreen;
animation: move 2s;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
动画简写属性
animation:动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 动画起始或者结束的状态;
注意:前两个属性是一定要写的,持续时间和何时开始的时间是有顺序的.
注意:
简写属性里面不包括animation-play-state,需要自己手动输入.
暂停动画:animation-play-state: paused;经常与鼠标经过等其他配合使用.
想要动画走回来,而不是直接跳回来:animation-direction: alternate.
盒子动画结束后,停在结束位置: animation-fill-mode: forwards.
做了一个案例,极其麻烦.(对不起台湾的位置有点定偏了)看了一下居然和老师的差不多但是老师做的更好看,用到了阴影,这样会有波纹的效果.
看看跟着老师做的,回头看自己的简直太low了哈哈哈.
自己做的时候那个圆一直搞不到同心圆,总是偏,一会好好研究一下...
研究了一下发现很奇怪...小圆圈放大的时候是顶着盒子的上边框和左边框方法的,就是不是以圆的中心放大...但是用了translate以后就可以了...不知道为什么,今天先睡啦,明天再看看吧.
速度曲线
其中steps步长的意思就是分几步完成动画.
举个例子:
现在做一个小熊奔跑案例,原图是这样的.
现在要使用步长来实现奔跑的效果,自己做了一下,效果如下,还是挺好玩的.
跑起来:
发表评论 取消回复