1、定义动画关键帧
对于这个动画,我们将使用两个关键帧-一个用恒定速度水平平移球,另一个用于应用大致抛物线垂直弹跳运动。可以将水平和垂直平移组合成一个关键帧,但这对我们所追求的效果不起作用。
使用以下关键帧可以轻松实现水平运动:
@-webkit-keyframestravel{
from{}
to{left:640px;}
}
@keyframestravel{
from{}
to{left:640px;}
}
稍后将使用指定的名称“travel”引用此关键帧,并使用linear(转换计时函数)来应用该关键帧,该函数随每次迭代更改方向。
对于垂直弹跳,动画,我们要利用的易用性在和渐出定时功能来模拟重力场的影响:
@-webkit-keyframesbounce{
from,to{
bottom:0;
-webkit-animation-timing-function:ease-out;
}
50%{
bottom:220px;
-webkit-animation-timing-function:ease-in;
}
}
@keyframesbounce{
from,to{
botttom:0;
animation-timing-function:ease-out;
}
50%{
bottom:220px;
animation-timing-function:ease-in;
}
}
该关键帧已被命名为“bounce”以供将来参考。
组合这两个关键帧将使我们的'球'水平移动640像素,垂直移动220像素。当然,这些值需要调整以适应“舞台”的大小。
2、设置动画的舞台
与往常一样,我们首先设置一个“舞台”,在其中执行动画。在这种情况下,一个尺寸为660x240像素的简单DIV。让宽度为100%会很好,但是在不知道确切像素宽度的情况下放置一些元素是很困难的。
#stage{
position:relative;
margin:1emauto;
width:660px;
height:240px;
border:2pxsolid#666;
background:#cff;
}
在这个阶段,我们将设置一个水平来回移动的DIV元素,并在其中表示上下反弹的“球”的DIV:
#traveler{
position:absolute;
width:20px;
height:240px;
-webkit-animation-name:travel;
-webkit-animation-timing-function:linear;
-webkit-animation-iteration-count:infinite;
-webkit-animation-direction:alternate;
-webkit-animation-duration:4.8s;
animation-name:travel;
animation-timing-function:linear;
animation-iteration-count:infinite;
animation-direction:alternate;
animation-duration:4.8s;
}
#bouncer{
position:absolute;
width:20px;
height:20px;
background:red;
border-radius:10px;
-webkit-animation-name:bounce;
-webkit-animation-iteration-count:infinite;
-webkit-animation-duration:4.2s;
animation-name:bounce;
animation-iteration-count:infinite;
animation-duration:4.2s;
}
所以'球'的尺寸为20x20像素,圆角。
3、设置球运动
我们完成了一些简单的HTML标记:
如果觉得《弹跳球游戏html css如何实现弹跳球动画效果?》对你有帮助,请点赞、收藏,并留下你的观点哦!