小球碰到一面壁之后一般都会反弹,反射角=入射角;

其实用css3来实现这个效果也非常简单。

首先,分解一下小球的运动:水平运动和垂直运动。

当小球往右下方向运动时,如果碰到了下面的壁,那么由于碰撞,小球受到了垂直于墙壁的力(即向上的力),这样的话水平运动是不会受到影响的,只有垂直运动受到了影响。所以在与上下壁碰撞时只需改变上下运动的方向,左右运动不变;以此类推,当小球与左右壁相碰撞时,只需改变水平运动的方向,垂直方向无需改动。

有了这个思路,就可以开始用css3动画来实现这个小球碰撞时反弹了。

1.html:

 <div id="box">
<div id="ball-box">
<div id="ball"></div>
</div>
</div>

2.css:

 #box {
width: 300px;
height: 150px;
border: 1px solid #7aa4c0;
}
#ball-box {
width: 20px;
height: 20px;
border-radius: 10px;
animation: bouncey linear 3s infinite;
-webkit-animation: bouncey linear 3s infinite;
}
#ball {
width: 20px;
height: 20px;
border-radius: 10px;
background: -webkit-radial-gradient(circle, #ddecee, #0377db);
background: -o-radial-gradient(circle, #ddecee, #0377db);
background: -moz-radial-gradient(circle, #ddecee, #0377db);
background: radial-gradient(circle, #ddecee, #0377db);
animation: bouncex linear 5s infinite;
-webkit-animation: bouncex linear 3s infinite;
}
@keyframes bouncey
{
0%,100% {
transform:translateY(0px);
-webkit-transform:translateY(0px);
}
50% {
transform:translateY(130px);
-webkit-transform:translateY(130px);
}
}
@keyframes bouncex
{
0%,100% {
transform:translateX(0px);
-webkit-transform:translateX(0px);
}
50% {
transform:translateX(280px);
-webkit-transform:translateX(280px);
}
}

css Code

小球的颜色利用css3里面的径向渐变,使小球看起来更加具有立体视觉感受。

好啦,大功告成= =

css动画-小球撞壁反弹的更多相关文章

  1. css动画-animation各个属性详解(转)

    CSS3的animation很容易就能实现各种酷炫的动画,虽然看到别人的成果图会觉得很难,但是如果掌握好各种动画属性,做好酷炫吊炸天的动画都不在话下,好,切入正题. 一.动画属性: 动画属性包括:①a ...

  2. 使用css动画实现领积分效果

    最近项目中要做一个领积分的效果,根据老板的描述,这个效果类似于支付宝蚂蚁森林里的领取能量.整体效果是就是在树周围飘着几个积分元素,上下滑动,类似星星闪烁,点击领取后,沿着树中心的位置滑动并消失,树上的 ...

  3. 深入浅出 CSS 动画

    本文将比较全面细致的梳理一下 CSS 动画的方方面面,针对每个属性用法的讲解及进阶用法的示意,希望能成为一个比较好的从入门到进阶的教程. CSS 动画介绍及语法 首先,我们来简单介绍一下 CSS 动画 ...

  4. 梅须逊雪三分白,雪却输梅一段香——CSS动画与JavaScript动画

    CSS动画并不是绝对比JavaScript动画性能更优越,开源动画库Velocity.js等就展现了强劲的性能. 一.两者的主要区别 先开门见山的说说两者之间的区别. 1)CSS动画: 基于CSS的动 ...

  5. Css 动画的回调

    在做项目中经常会遇到使用动画的情况.以前的情况是用js写动画,利用setTimeout函数或者window.requestAnimationFrame()实现目标元素的动画效果.虽然后者解决了刷新频率 ...

  6. 【译】css动画里的steps()用法详解

    原文地址:http://designmodo.com/steps-c... 原文作者:Joni Trythall 我想你在css 动画里使用steps()会和我一样有很多困惑.一开始我不清楚怎样使用它 ...

  7. css动画属性性能

    性能主要表现:流量.功耗与流畅度 在现有的前端动画体系中,通常有两种模式:JS动画与CSS3动画. JS动画是通过JS动态改写样式实现动画能力的一种方案,在PC端兼容低端浏览器中不失为一种推荐方案. ...

  8. Css动画形式弹出遮罩层,内容区上下左右居中于不定宽高的容器中

    <!DOCTYPE html> <html> <head> </head> <body id="body"> <! ...

  9. css动画与js动画的区别

    CSS动画 优点: (1)浏览器可以对动画进行优化.   1. 浏览器使用与 requestAnimationFrame 类似的机制,requestAnimationFrame比起setTimeout ...

随机推荐

  1. C++类和对象的一个简单的实例

    题目:找出一个整形数组中的元素的最大值 下面,我们用类和对象的方法来做. #include<iostream> using namespace std; class Array_max{ ...

  2. 《精通Spring4.X企业应用开发实战》读后感第六章(使用外部属性文件)

  3. Saving output of a grep into a file with colors

    19 down vote favorite 7 I need to save the result of a grep command into a file, but I also want the ...

  4. POJ 2398 Toy Storage (叉积判断点和线段的关系)

    题目链接 Toy Storage Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4104   Accepted: 2433 ...

  5. 在Android中使用Protocol Buffers(中篇)

    本文来自网易云社区. FlatBuffers 编码原理 FlatBuffers的Java库只提供了如下的4个类: ./com/google/flatbuffers/Constants.java ./c ...

  6. hdu2874(lca / tarjan离线 + RMQ在线)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2874 题意: 给出 n 个顶点 m 条边的一个森林, 有 k 个形如 x y 的询问, 输出 x, ...

  7. Maven中如何利用继承创建web项目(分层开发)

    1.创建父项目parent 新建——Maven Project——勾选Create a Simple Project(skip archetype selected)——填写parent坐标,注意打包 ...

  8. ora2pg oracle迁移postgresql工具

    windows下安装 1. 安装strawberry-perl-5.24.3.1-64bit.msi 2. ora2pg-18.2.zip 解压缩cd 进入目录perl Makefile.PLdmak ...

  9. Ubuntu下nagios安装(来源官网)

    Ubuntu下nagios安装(来源官网) https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/toc.html h ...

  10. 牛客练习赛34-C-little w and Segment Coverage(差分数组)

    链接:https://ac.nowcoder.com/acm/contest/297/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...