今天,我们准备利用CSS3动画来做一个实验。在我们的前一篇文章中,我们讨论了如何利用CSS3动画实现改造“移动字幕”的效果。这次,我们将会尝试利用弹跳效果制作一个“通知栏”。
准备开始
让我们先新建一个新的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;
}
这就是我们刚才所需要的所有代码了,现在你可以从下面的链接中看到这个弹跳效果的动画演示。
更多资源
下面是一些为了深入挖掘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中,`animation`属性是一个强大的工具,它允许我们创建复杂的动态效果,比如我们的主题——3D弹力球的弹跳动画。这个动画效果不仅增强了用户界面的视觉吸引力,还能提供更好的交互体验。接下来,我们将深入...
HTML5 3D小球弹跳动画是一款很逼真的HTML5动画特效,它是3个色彩各异的弹跳小球,每一个小球在弹跳的时候都会有变化的小球投影,让整个动画更加逼真,而且具有3D的视觉效果。 演示地址:...
【CSS3小球浮动按钮】是一种创新的网页交互元素,主要利用了CSS3的强大功能来实现独特的视觉效果。这个按钮并非传统的文字或图形形式,而是由7个小球组成的,每个小球都有逼真的滚动和投影效果,提升了用户体验的...
【CSS3小球环形旋转Loading动画】是一个充满活力的前端设计示例,它利用了CSS3的强大功能来创建一个视觉吸引力强、交互性高的加载指示器。在现代网页设计中,Loading动画不仅用于告知用户内容正在加载,还能够提升...
这段代码定义了一个名为“bounce”的动画,小球在0%时位于原始位置,50%时下移20像素,100%时回到初始位置,形成了一个简单的弹跳效果。 接下来,我们需要为每个小球创建一个HTML元素,并应用相应的CSS样式。小球的...
综上所述,利用CSS3的强大功能,我们可以创造出多种小球物理运动特效,如绕球旋转、自由落体、弹跳等,为网页增添生动的动态元素。这不仅展示了CSS3的潜力,也为用户带来了更佳的视觉体验。在实际开发中,根据项目...
本资源“非常欢乐的CSS3小球环形旋转Loading动画效果”便是一个利用CSS3特性实现的创意加载动画示例。这个加载动画通过小球的环形旋转,给用户带来生动且有趣的等待体验,尤其适用于网站或应用的启动界面。 首先,...
在本文中,我们将深入探讨如何使用CSS3技术来创建一个有趣且引人入胜的“小球循环转圈互相撞击”的加载特效。这个特效适用于网页加载时,为用户提供一种动态的视觉体验,同时展示出CSS3的强大功能。 首先,我们要...
在IT领域,CSS3是一种强大的样式表语言,用于定义网页的布局、颜色、字体等视觉效果。本主题聚焦于“css3-弹出窗口弹出效果”,这涉及到网页交互设计中的一个重要方面,即如何通过CSS3实现吸引用户的动态提示或信息...
在这款名为“css3线条波浪动画效果”的项目中,开发者利用CSS3的动画(animation)特性,结合PNG图像,创建了一个生动且吸引人的波浪线条动画效果。以下是对这个项目的详细解析: 首先,CSS3的动画功能允许我们为...
标题提到的"很有特色的CSS3小球浮动按钮"就是一个很好的例子,它展示了如何利用CSS3的特性来设计吸引用户的交互式按钮。这种按钮通常比传统的静态按钮更具视觉吸引力,可以提高用户的参与度。 首先,让我们深入理解...
CSS3 图片重影(拖尾)效果动画 源码,鼠标悬停于图片时,图片显示重影效果,或者叫做拖尾效果吧,就是那一类效果。同时图片稍微带点放大的效果,很好的与用户操作形成交互动画,这种效果可以用在焦点图、相册中,在...
总之,CSS3小球环形旋转Loading动画特效是CSS3能力的精彩展示,它利用了CSS3的诸多高级特性,创造出引人入胜的视觉效果。无论是前端开发者还是设计师,理解和掌握这些技术都将对提升用户体验大有裨益。
在网页设计中,CSS3(层叠样式表第三版)为开发者提供了许多强大的新特性,其中之一就是能够创建丰富且互动的鼠标悬停(hover)效果。"7种CSS3鼠标hover图片效果.zip"是一个资源包,它包含了七种不同的CSS3技术实现...
这个源码可能包含一个或多个小球元素,通过CSS3的`@keyframes`规则定义动画序列,使小球呈现出弹性运动的效果,模拟真实的物理弹跳。 【标签】"css3"表明这个项目的核心技术是CSS3,这包括但不限于以下知识点: 1. ...
在本文中,我们将深入探讨如何使用CSS3来创建具有动画效果的按钮,这些按钮具有五种不同的漂亮样式。CSS3是层叠样式表的第三版,它引入了许多新特性,其中包括强大的动画功能,使得网页元素的交互性与视觉表现力大大...
【CSS3图片画廊效果】是一种利用现代浏览器支持的CSS3特性来实现的网页中图片展示的创新方式。CSS3的引入为网页设计带来了许多新的可能性,包括过渡、动画、多列布局、阴影、渐变以及选择器增强等,使得图片画廊可以...
Animate.css 是一个强大的开源 CSS3 动画库,它为开发者提供了一系列预先设计好的动画效果,使得在网页设计中添加动态元素变得简单易行。这个库包含了许多有趣的动画,如抖动、闪烁、弹跳等,可以极大地提升用户体验...
【纯css3带动画效果的左右滑动按钮】是一种利用CSS3特性实现的交互式设计,主要用于创建具有平滑动画和视觉吸引力的开关按钮。在现代网页设计中,这种按钮常用于用户界面,如设置选项、开启/关闭功能等。CSS3作为...