animation动画非常强大,快速掌握它多亏以前做过两年的flash开发,回想起十多年前用flash做动画的时候,曾经也有一个闪客梦,说这些话只能证明我老了!!
别小看这三个弹跳的小球球,分别代表了animation动画三种基本方式:
1、利用%时间轴控制运动的速度。
2、利用贝塞尔cubic-bezier控制运动的速度。
3、多段animation动画,每段动画单独控制。
具体的教程可以去看:
CSS3第十三课: steps animation逐帧动画,你不应该错过的最详篇!
案例核心代码:
.wrap {
position: absolute;
left:50%;
top:20px;
margin-left:-50px;
width: 100px;
height:300px;
}
.ball {
position:absolute;
width: 100px;
height: 100px;
border-radius: 50%;
background: radial-gradient(at 80% 20%, rgb(255, 213, 151), #f90, #f00, rgb(114, 0, 0));
animation: ball 2s cubic-bezier(1,-0.42,0,1.52) infinite;
transform-origin: center bottom;
z-index: 2;
}
.shadow {
position:absolute;
width: 50px;
height: 20px;
left:25px;
top:410px;
border-radius: 50%;
background: radial-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0) 70%,rgba(0, 0, 0, 0));
z-index: 1;
animation:shadow 2s cubic-bezier(1,-0.42,0,1.52) infinite;
}
.wrap1{
position:absolute;
width:70px;
height:200px;
left:200px;
top:100px;
}
.ball1{
position:absolute;
width:70px;
height: 70px;
border-radius: 50%;
background: radial-gradient(at 80% 20%,rgb(245, 121, 228),rgb(178, 15, 211),#220474,rgb(3, 1, 41));
transform-origin:center bottom;
z-index: 2;
animation:ball1 2s linear infinite;
}
.shadow1{
position:absolute;
width:35px;
height: 14px;
border-radius: 50%;
background: radial-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0) 70%,rgba(0, 0, 0, 0));
z-index: 1;
left:17px;
bottom:-80px;
animation:shadow1 2s linear infinite;
}
.wrap2{
position:absolute;
right:200px;
top:0;
width:60px;
height: 300px;
}
.ball2{
position:absolute;
left:0;
top:-60px;
z-index: 2;
width:60px;
height: 60px;
border-radius: 50%;
background: radial-gradient(at 80% 20%,#ddd9a4,#1475f5,#071377,#110024);
animation: ball2-1 2s ease-in,ball2-2 1.33s ease-out 2s,ball2-3 1.33s ease-in 3.33s,ball2-4 0.665s ease-out 4.66s,ball2-5 0.665s ease-in 5.325s forwards,ball2-6 4s ease-out 6s forwards;
}
.shadow2{
position:absolute;
width:30px;
height: 12px;
border-radius: 50%;
background: radial-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0) 70%,rgba(0, 0, 0, 0));
z-index: 1;
left:15px;
bottom:0;
}
@keyframes ball {
0% {
transform: translate(0, 0);
}
50% {
transform: translate(0, 300px);
}
}
@keyframes ball1 {
0% {
transform: translate(0, 0);
}
80% {
transform: translate(0, 200px);
}
81%{
transform: translate(0,200px) scale(1.25,.8);
}
}
@keyframes ball2-1 {
0% {
transform: translate(0, 0);
}
99%{
transform: translate(0,300px);
}
100%{
transform: translate(0,300px) scale(1.25,0.8);
}
}
@keyframes ball2-2 {
0% {
transform: translate(0, 300px) scale(1.25,0.8);
}
100%{
transform: translate(0,100px) scale(1);
}
}
@keyframes ball2-3 {
0% {
transform: translate(0, 100px);
}
99%{
transform: translate(0,300px);
}
100%{
transform: translate(0,300px) scale(1.1,0.91);
}
}
@keyframes ball2-4 {
0% {
transform: translate(0, 300px) scale(1.1,0.91);
}
100%{
transform: translate(0,200px) scale(1);
}
}
@keyframes ball2-5 {
0% {
transform: translate(0, 200px);
}
100%{
transform: translate(0,300px);
}
}
@keyframes ball2-6 {
0% {
transform: translate(0, 300px);
}
100%{
transform: translate(200px,300px) rotate(360deg);
}
}
@keyframes shadow{
0%{
transform:scale(1);
}
50%{
transform:scale(2);
}
}
@keyframes shadow1{
0%{
transform:scale(1);
}
80%{
transform:scale(2);
}
}
发表评论:
◎请发表你卖萌撒娇或一针见血的评论,严禁小广告。