弹跳球游戏html,css如何实现弹跳球动画效果?

这篇博客介绍了如何使用CSS关键帧动画创建一个球体,使其在水平方向上以恒定速度平移并垂直方向上模拟抛物线弹跳运动。通过定义`travel`和`bounce`两个关键帧,结合`linear`和`ease-in-out`的动画计时函数,实现了球体在640px水平距离和220px垂直距离的运动。博客还提供了设置动画舞台和球体尺寸的CSS代码,以及球体的HTML结构。
摘要由CSDN通过智能技术生成

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标记:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值