闲时浏览网页,偶然看到这么个效果:

正好最近在研究css3动画,网页上一切动的事物都能引起我十二分的注意。于是理所当然的右键,查看代码,看看他是怎么实现的,结果呐,原来只是一张gif图片啊。但是这个以前物理课上有过一面之缘的小球形象是那么令人感到亲切,我特别想用代码让他动起来,这个想法很强烈啊。于是,打开dw,开始鼓捣。

最开始当然是想用css3的animation来写,分析了一下,一共有四个动作:最左边小球从左滚动到右,最右边小球从左滚动到右,最右边小球从右滚动到左,最左边小球从右滚动到左,然后反复这一过程。

可实际写起来,问题来了,无论是设置延时,还是控制动画结束时的监听,都不能实现上面的动画顺序,最后,只好用js的setTimeout()和animate()来实现了。仔细观察这个gif图,其实小球的运动有一个先慢后快的形式,在css3中倒是有animation-timing-function规定动画的速度曲线,那jquery的animate()是不是也有这种相似的参数呢?翻开手册查找,还真有,是这么说的:

这里需要插件支持,是个什么插件呢?百度后得知原来是这个jquery.easing.js,网上有很多其详细的用法解说,引入他后,easing参数可选的值可以达到32种之多,于是我选出那个先慢后快的参数,放到我的小球动画代码中,又调整了一个动画时间、延迟时间等,最后虽说还是没有gif图片那种效果,但是已经有点两端小球隔山碰撞产生的运动之感了,把成品放在那种缓冲等待页面之类的,应该算不错吧。

如果有用css3做出来的高人,请一定要指点一二啊!

最后贴上代码:

html

<ul class="ball">

<li class="b_left"></li>

<li></li>

<li></li>

<li></li>

<li></li>

<li class="b_right"></li>

</ul>

css

.ball{ width:500px; padding:0; margin:0; list-style:none; margin:100px auto 0; position:relative;}

.ball li{ float:left; width:20px; height:20px; background:green; border-radius:50%;}

.b_left{ position:relative; left:-50px;}

.b_right{ position:relative; left:0;}

js

<script>

$(function(){

var l=$(".b_left");

var r=$(".b_right");

play();

function play(){

setTimeout(function(){

l.delay(200).animate({

left:0

},{

easing: 'easeInOutQuad',

duration: 200,

});

},200);

setTimeout(function(){

r.delay(200).animate({

left:"50px"

},{

easing: 'easeInOutQuad',

duration: 200,

});

},500);

setTimeout(function(){

r.delay(200).animate({

left:0

},{

easing: 'easeInOutQuad',

duration: 200,

});

},800);

setTimeout(function(){

l.delay(200).animate({

left:"-50px"

},{

easing: 'easeInOutQuad',

duration: 200,

});

},1100);

}

setInterval(play,1100);

});

</script>

效果预览:http://www.gbtags.com/gb/rtreplayerpreview-standalone/2981.htm

源码下载:http://pan.baidu.com/s/1c9lwHC

转载于:https://www.cnblogs.com/xiaoxianweb/p/5826059.html

【原创】小球碰撞动画相关推荐

  1. Qt实现小球碰撞动画——屏保

    说明:本次设计应用Qt完成一个小动画,并且可以同用户进行交互,适合新手学习练手 功能描述:小球弹撞动画具有以下功能 1.小球可以沿着一个随机的方向运动 2.运动时可以加减速 3.随时切换小球形状(圆形 ...

  2. pygame动画演示小球碰撞

    使用pygame实现动量定理的小球碰撞演示动画 动量定理我们在高中的时候就已经接触过了,是十分重要的物理定理.其中的完全弹性碰撞(机械能守恒)是十分典型的例子,机械能守恒和动量定理两个公式就可以推出小 ...

  3. 绘制canvas彩色泡泡小球碰撞

    globalCompositeOperation带来的不一样的烟花 一.知识点 1.动画: setInterval(             function(){                 d ...

  4. android落下动画,Android应用开发android 购物车小球掉落动画

    本文将带你了解Android应用开发android 购物车小球掉落动画,希望本文对大家学Android有所帮助. 先贴效果图 对自定义View小红球的绘制 public class BallView ...

  5. python炫酷动画源代码_Python tkinter实现的图片移动碰撞动画效果【附源码下载】...

    本文实例讲述了Python tkinter实现的图片移动碰撞动画效果.分享给大家供大家参考,具体如下: 先来看看运行效果: 具体代码如下: #!/usr/bin/python # -*- coding ...

  6. 一个与小球碰撞有关的有趣问题

    -一个与小球碰撞有关的问题 -本人学号:16340300 -本人学院:数据科学与计算机学院 目录 看看这个问题 如何解决 解法 看看这个问题 如图,在光滑水平面上,有一个球A向墙运动,速度垂直于墙面, ...

  7. Canvas+Js制作动量守恒的小球碰撞

    目的:通过js实现小球碰撞并实现动量守恒 canvas我们就不多说了,有用着呢. 我们可以通过canvas画2D图形(圆.方块.三角形等等)3D图形(球体.正方体等待). 当然这只是基础的皮毛而已,c ...

  8. Java反弹球两球相撞_java实现小球碰撞反弹

    java实现小球碰撞反弹 java实现小球碰撞反弹 首先我们要在一个窗口里面显示这个功能,因此引入JFrame类然后创建一个窗口代码如下: JFrame win=new JFrame();//新建窗口 ...

  9. JS实现小球碰撞边界反弹-点击消失(详细解析实现思路)

    本篇文章给大家带来的是原生JS实现小球碰到边界就反弹,点击小球时小球被会销毁,并重新创建一个小球,让小球的数量一直保持在初始的数量,按照思路按步骤进行讲解,只需要源码的小伙伴可以定位到文本末尾直接复制 ...

最新文章

  1. PHP中include()与require()的区别说明
  2. 高并发01_synchronized
  3. 详细介绍软件架构设计的三个维度
  4. html获取边缘元素,JQuery 获取元素到浏览器可视窗口边缘的距离
  5. g++: command not found
  6. Java编程练习题2
  7. python连接hive--Pyhive
  8. 《大话数据结构》第一章 数据结构绪论
  9. 人生的智慧——叔本华
  10. access函数使用方法
  11. java截取固定大小图片_JAVA技巧(长字符串按指定长度截取)
  12. 基于select2的二级联动
  13. 怎么在Vc中打开MySQL数据库_在vc++中使用mysql数据库_MySQL
  14. Cocos之 从C++过渡到Lua
  15. 互联网直播点播平台EasyDSS登录页广告位图片上传接口报错问题分析
  16. HTC Vive与Oculus Rift全面对比
  17. UltraEdit v17 注册码破解
  18. 那些年,我们一起写过的“单例模式”
  19. 南开大学计算机考博参考书目,南开大学2017年考博真题回忆汇总帖
  20. 【fpdlink显示】941 GPIO3与948 GPIO3连接问题

热门文章

  1. equest,response,session,cookie,application
  2. c语言switch例题考试成绩,使用C语言switch语句根据考试成绩等级输出百分制的分数段,规定如下: A:85~100 B:70~84 C:60~69 D:60...
  3. ab进行压力测试详解
  4. STC11F04E——电子工艺实习
  5. CeisumLabApkServe--为CeisumLab工具下载地图,影像数据的.pak文件架设地图服务
  6. sis防屏蔽程序_智能化弱电工程屏蔽机房基础知识
  7. Comparator.comparing嵌套对象倒序以及多重条件排序
  8. 固高控制卡相关要点分析2
  9. xinetd(安装及配置xinetd)
  10. 图的建立——邻接矩阵