`

css3 小球 弹跳 坠落 效果

 
阅读更多

今天,我们准备利用CSS3动画来做一个实验。在我们的前一篇文章中,我们讨论了如何利用CSS3动画实现改造“移动字幕”的效果。这次,我们将会尝试利用弹跳效果制作一个“通知栏”。

 

·VIEW DEMO

 

准备开始


让我们先新建一个新的HTML工程文件,并且输入下面的代码用来构建这个通知栏。

view plaincopy to clipboardprint?

<div class="css3-notification">

<p>Hi, this is a notification and it bounces.</p>

</div>

 

然后,输入一些装饰样式的语句来修饰这个通知栏。

 

view plaincopy to clipboardprint?

.css3-notification {

font-size: .8em;//字体大小:8em

text-align: center; //文字校准:居中

padding: 10px;//底填充:10像素

background-color: #111;//背景颜色:#111

color: #fff;//字体颜色:#fff

box-shadow:0px 1px 3px 0px rgba(0, 0, 0, .3);//内阴影: 0px 1px 3px 0pxRGBA(颜色透明度)(0,0,0,3)

text-transform: uppercase;//文字大小写变换:大写

position: relative;//位置:相对

font-weight: bold;//字体粗细:粗体

}

 

到此阶段,我们将会在浏览器中得到下面这样的结果。


 

编写CSS3动画的关键帧

 

如何让弹跳进行下去的基本想法是,当这个实体第一次掉落在表面时,它从表面反弹,并且将会反弹达到它的最高水平。接着,在随后每一次反弹中,它逐渐达到一个较低的点,直到这个实体停止弹跳。以上想法反映在了下面的图中。

 

 

步骤1:创建动画关键帧

 

现在,让我们开始在样式表中编写CSS3动画关键帧。在这个例子里,我们简单地把这个关键帧命名为bounce(弹跳)。

 

@keyframes bounce {

}

 

记住在这个教程中,我们会使用W3C的标准@keyframe(关键帧)语法来让代码看起来更简洁。但是,为了使这个动画能够在浏览器上运行,供应商语法(-webkit-,-moz-,-o-)必须被包含在内,并且随后你就可以在资源代码中找到它们。

 

步骤2:指定初始位置

 

首先,我们将这个实体设定在它的初始位置的顶端。在CSS3变换中,我们将Y 轴坐标赋值为负数。在下面的代码片段中,我们把这个初始位置设定在从0%到5%的这段时间帧内。因此,这个通知栏将会在这个位置上停止一段时间。

0% {
transform:translateY(-100%);
opacity: 0; } 5% {
transform:translateY(-100%);
opacity: 0;
}

 

步骤3:指定首次弹跳

 

然后,在时间轴的5%到15%的范围里,这个实体开始运动到它的初始位置。我们设置translateY 属性值回到0%。一般地,一个实体的弹跳是具有弹性的。当这个实体撞击一个固体时,撞击到那个表面的这个实体的一边,就一定会产生很小的压缩或者变形。因 此,对我们来说,我们就要把padding-bottom(底填充)从10像素减少到5像素。

 

1. 15% {
2. transform:translateY(0);
3. padding-bottom: 5px;
4. }

 

这个实体在撞击表面以后将会向上回弹,在这个点上,也就是这个实体的回弹最高点,我们在时间帧的30%处将它设置为50%。

1. 30% {
2. transform:translateY(-50%);
3. }

 

步骤4:指定第二次弹跳

 

在到达最高点以后,这个实体应该再返回0坐标位置,换句话说就是撞击地面。这个实体应该比之前的撞击产生相对较小的形变。因此,在这点上,我们只需把这个实体的padding-bottom(底填充)减少到6像素。

 

40% {
transform:translateY(0%);
padding-bottom: 6px;
}


之后它反弹。

这一次,它只能达到比之前更低的点;从当前位置向上移动到30%。

 

1. 50% {
2. transform:translateY(-30%);
3. }

 

步骤5:不断继续弹跳直到它停止

 

这些事件不断重复直到到达时间轴的终点,下面的是剩余的动画部分——从时间轴的70%到100%。

 

70% {
transform:translateY(0%);
padding-bottom: 7px;
}
80% {
transform:translateY(-15%);
}
90% {
transform:translateY(0%);
padding-bottom: 8px;
}
95% {
transform:translateY(-7%);
}
97% {
transform:translateY(0%);
padding-bottom: 9px;
}
99% {
transform:translateY(-3%);
}
100% {
transform:translateY(0);
padding-bottom: 9px;
opacity: 1;
}

 

这就是我们刚才所需要的所有代码了,现在你可以从下面的链接中看到这个弹跳效果的动画演示。

 

· VIEW DEMO

· DOWNLOAD SOURCE

 

更多资源

 

下面是一些为了深入挖掘CSS3动画,变换以及更多弹跳效果的优秀资源。

 

Creating Advanced “Marquee”With CSS3 Animation— Hongkiat.com

利用CSS3创建高级移动字幕效果—Hongkiat.com

 

CSS3 2D Transforms— Hongkiat.com

CSS3 2D 变换—Hongkiat.com

 

What are all theequations we use to calculate how bounces work?— StackExchange

那些我们使用去计算弹跳如何工作的方程式都是什么?— StackExchange

 

Bounce Effect with jQuery— jQuery.com

利用jQuery的弹跳效果—jQuery.com

 

3D Bouncing Ballwith CSS3—Codrops

使用CSS3制作3D弹球—Codrops

分享到:
评论

相关推荐

    纯CSS3实现的3D小球动画在线演示

    本项目标题“纯CSS3实现的3D小球动画在线演示”所涉及的核心知识点,就是利用CSS3的3D转换和动画特性来创建一个立体的小球动态效果。这个特效模拟了小球落地后跳动的真实物理运动,不断循环,为用户带来沉浸式的交互...

    css3弹力球动画animation属性制作3D弹力球弹跳动画效果

    在CSS3中,`animation`属性是一个强大的工具,它允许我们创建复杂的动态效果,比如我们的主题——3D弹力球的弹跳动画。这个动画效果不仅增强了用户界面的视觉吸引力,还能提供更好的交互体验。接下来,我们将深入...

    HTML5 3D小球弹跳动画效果

    HTML5 3D小球弹跳动画是一款很逼真的HTML5动画特效,它是3个色彩各异的弹跳小球,每一个小球在弹跳的时候都会有变化的小球投影,让整个动画更加逼真,而且具有3D的视觉效果。 演示地址:...

    纯css3可点击放大缩小的3d弹跳小球动画

    4. **动画**:虽然题目中没有明确提到CSS3动画(`animation`),但可能在代码中使用了关键帧动画来实现小球的自然弹跳效果。`@keyframes`规则可以定义动画的各个阶段,使得小球在运动过程中表现出物理上的重力和反弹...

    CSS3小球环形旋转Loading动画.zip

    【CSS3小球环形旋转Loading动画】是一个充满活力的前端设计示例,它利用了CSS3的强大功能来创建一个视觉吸引力强、交互性高的加载指示器。在现代网页设计中,Loading动画不仅用于告知用户内容正在加载,还能够提升...

    HTML5 3D小球弹跳动画.zip

    总结起来,这个"HTML5 3D小球弹跳动画"项目展示了前端开发中的多个核心技术:HTML5的`&lt;canvas&gt;`和WebGL用于绘制和操控3D对象,CSS3的转换和动画负责视觉效果,而JavaScript(包括jQuery)则处理交互逻辑和动画帧的...

    CSS3小球跳动Loading动画特效.zip

    这段代码定义了一个名为“bounce”的动画,小球在0%时位于原始位置,50%时下移20像素,100%时回到初始位置,形成了一个简单的弹跳效果。 接下来,我们需要为每个小球创建一个HTML元素,并应用相应的CSS样式。小球的...

    4种纯CSS3小球物理运动动特效

    综上所述,利用CSS3的强大功能,我们可以创造出多种小球物理运动特效,如绕球旋转、自由落体、弹跳等,为网页增添生动的动态元素。这不仅展示了CSS3的潜力,也为用户带来了更佳的视觉体验。在实际开发中,根据项目...

    非常欢乐的CSS3小球环形旋转Loading动画效果.zip

    本资源“非常欢乐的CSS3小球环形旋转Loading动画效果”便是一个利用CSS3特性实现的创意加载动画示例。这个加载动画通过小球的环形旋转,给用户带来生动且有趣的等待体验,尤其适用于网站或应用的启动界面。 首先,...

    CSS3小球循环转圈加载特效.zip

    本项目“CSS3小球循环转圈加载特效”就是利用这些特性来创建一种吸引人的加载指示器,它由多个小球沿着一个圆环路径循环移动,表现出动态的加载效果。 首先,我们来看CSS3中的关键帧动画(@keyframes),它是实现此...

    CSS3小球浮动按钮.zip

    综合以上技术,"CSS3小球浮动按钮.zip"可能是一个利用CSS3创建具有动态效果的按钮,按钮的设计可能是小球形状,使用JavaScript和jQuery实现按钮的交互功能,如点击后的动画变化。HTML5则提供了良好的结构支持和可能...

    纯CSS3实现3D小球动画 纯CSS3实现3D小球动画网页特效.zip

    在本项目中,"纯CSS3实现3D小球动画 纯CSS3实现3D小球动画网页特效.zip",我们关注的核心是利用CSS3技术来创建动态、立体感的3D小球动画效果。这是一项前端开发中的高级技巧,涉及到HTML5、jQuery和JavaScript的综合...

    CSS3小球循环转圈互相撞击实现的Loading加载特效.zip

    在本文中,我们将深入探讨如何使用CSS3技术来创建一个有趣且引人入胜的“小球循环转圈互相撞击”的加载特效。这个特效适用于网页加载时,为用户提供一种动态的视觉体验,同时展示出CSS3的强大功能。 首先,我们要...

    CSS3小球浮动按钮特效代码

    总的来说,CSS3小球浮动按钮特效是CSS3动画技术的一个生动实例,展示了现代网页设计中的创新和动态效果的可能性。通过深入理解并实践这样的特效,开发者可以提升网页的用户体验,同时也能提升自己的CSS技能。

    3D小球跳动动画.zip

    4. **投影效果**:为了增加立体感,开发者可能利用CSS3的阴影效果或者自定义算法来实现小球的投影。在每次小球移动时,根据其位置和角度计算投影,然后在Canvas上绘制出来。 5. **物理模拟**:为了让小球的弹跳看...

    CSS3 3D方块弹跳动画特效.zip

    【CSS3 3D方块弹跳动画特效】 在网页设计中,CSS3(Cascading Style Sheets Level 3)的引入为开发者提供了更多增强视觉吸引力的工具,其中包括3D转换功能。本教程将深入探讨如何利用CSS3的3D变换来创建一个...

    CSS3 图片重影(拖尾)效果动画 源码.rar

    CSS3 图片重影(拖尾)效果动画 源码,鼠标悬停于图片时,图片显示重影效果,或者叫做拖尾效果吧,就是那一类效果。同时图片稍微带点放大的效果,很好的与用户操作形成交互动画,这种效果可以用在焦点图、相册中,在...

    CSS3小球环形旋转Loading动画特效代码

    总之,CSS3小球环形旋转Loading动画特效是CSS3能力的精彩展示,它利用了CSS3的诸多高级特性,创造出引人入胜的视觉效果。无论是前端开发者还是设计师,理解和掌握这些技术都将对提升用户体验大有裨益。

Global site tag (gtag.js) - Google Analytics