日期:2012/03/05

在线演示  本地下载

今天我们分享一个来自于html5canvastutorials的超酷弹跳球效果,这里我们使用纯HTML5的画布来实现动画及其图形。整个效果使用小球来组合生成字体,如果你的鼠标逼近这些小球,它们会四散而逃,当你的鼠标离开后,它们又自动复原,效果很酷,希望大家喜欢!

                    if (ball.y < (ball.radius)) {                        ball.y = ball.radius + 2;                        ball.vy *= -1;                        ball.vy *= (1 - collisionDamper);                    }

// right wall condition                    if (ball.x > (canvas.width - ball.radius)) {                        ball.x = canvas.width - ball.radius - 2;                        ball.vx *= -1;                        ball.vx *= (1 - collisionDamper);                    }

// left wall condition                    if (ball.x < (ball.radius)) {                        ball.x = ball.radius + 2;                        ball.vx *= -1;                        ball.vx *= (1 - collisionDamper);                    }                }            }

function Ball(x, y, vx, vy, color){this.x = x;this.y = y;this.vx = vx;this.vy = vy;this.color = color;this.origX = x;this.origY = y;this.radius = 10;            }

function animate(canvas, balls, lastTime, mousePos){var context = canvas.getContext("2d");

// update                var date = new Date();var time = date.getTime();var timeDiff = time - lastTime;                updateBalls(canvas, balls, timeDiff, mousePos);                lastTime = time;

// clear                context.clearRect(0, 0, canvas.width, canvas.height);

// render                for (var n = 0; n < balls.length; n++) {var ball = balls[n];                    context.beginPath();                    context.arc(ball.x, ball.y, ball.radius, 0, 2 * Math.PI, false);                    context.fillStyle = ball.color;                    context.fill();                }

// request new frame                requestAnimFrame(function(){                    animate(canvas, balls, lastTime, mousePos);                });            }

            window.onload = function(){var canvas = document.getElementById("myCanvas");var balls = initBalls();var date = new Date();var time = date.getTime();/*                 * set mouse position really far away                 * so the mouse forces are nearly obsolete*/var mousePos = {                    x: 9999,                    y: 9999                };

                canvas.addEventListener("mousemove", function(evt){var pos = getMousePos(canvas, evt);                    mousePos.x = pos.x;                    mousePos.y = pos.y;                });

                canvas.addEventListener("mouseout", function(evt){                    mousePos.x = 9999;                    mousePos.y = 9999;                });

                animate(canvas, balls, time, mousePos);            };        </script>

分享一个HTML5画布实现的超酷文字弹跳球效果相关推荐

  1. 使用HTML5画布实现的超棒javascript动画仪表板:gauge.js

    日期:2012-8-8  来源:GBin1.com 在线演示 今天我们分享来自guage.js的超棒动画仪表板实现,这个类库使用html5画布来生成动态的自定义仪表板.不依赖于任何类库也不实用任何的C ...

  2. html5仪表板可调节,使用HTML5画布实现的超棒javascript动画仪表板:gauge.js

    今天我们分享来自guage.js的超棒动画仪表板实现,这个类库使用html5画布来生成动态的自定义仪表板.不依赖于任何类库也不实用任何的CSS或者图片,完全使用画布生成. 拥有两套不同的UI,一个是仪 ...

  3. 今天给大家分享一个HTML5的钢琴代码,可以弹奏的哦!(附完整源码)

    它是一个可以弹奏的钢琴,所以它需要音频文件,在这里发不了,这里只有代码,音频文件的分享在文章末尾哦. <!doctype html> <html lang="en" ...

  4. html5播放器android,分享一个Html5+video 基于mui 5+的视频播放器

    一直没有找到一款适合在MUI上的播放器,网上很多都是基于JQ的播放,样式不好看,也难修改,不好用难于兼职安卓和苹果手机, 实在没办法,只能亲自操刀,自己写一个播放器了,给遇到我一样情况的朋友们,封装起 ...

  5. 分享一个html5初音未来减压网站

    减压音乐网站 mikutap 可自行魔改 版权说明 DEMO mikutap A Mainland China friendly and independent version extracted f ...

  6. html文字自动上翻,jQuery超酷文字随机翻转变换动画特效

    Flapper是一款效果非常酷的文字随机翻转变换动画jQuery特效.它的效果类似于机场或车站显示航班或车次的文字变换效果,每个文字都随机变换几次,然后才显示某个设定好的文字. 该文字特效可以显示文字 ...

  7. html5获得画布上坐标,javascript – HTML5画布在缩放和翻译后获取坐标

    背景:我有一个 HTML5画布,我画了一个图像.现在,当图像首次加载时,它以100%的比例加载.图像是5000 x 5000.画布大小是600 x 600.所以onload,我只看到前600 x像素和 ...

  8. 【Matlab/Simulink笔记】入门练习——搭建一个弹跳球实验

    介绍 第一个实例太过简单,而且看不出什么实际效果,因此这次选了一个比较贴近中学物理的实验,弹跳球实验 这个实验是在观看一位老师的入门课程时想尝试的实验:MATLAB/Simulink基础入门视频教程: ...

  9. html贪吃蛇自动走,分享一个用html5实现的贪吃蛇特效代码

    本篇小编为大家分享一个用html5实现的简单贪吃蛇特效代码,喜欢的小伙伴们可以看一下 Snake //内置大量BUG,I'm sorry. var lev=100; //定时器间隔时间 var num ...

最新文章

  1. Java项目:CRM客户管理系统(java+SSM+jsp+mysql+maven)
  2. Windows Mobile 与 PC之间的通过蓝牙(Bluetooth) 传输文件的开发
  3. 图解在Matlab中初步操作一下3D图形学算法
  4. (转)Eclipse New Server 【无法输入server name】
  5. 欧拉通路 java,欧拉回路
  6. Mr.J-- jQuery学习笔记(二十二)--入口函数
  7. 直播预告:WLS/WAS故障基本分析介绍
  8. contes 7.6安装后网络问题解决方案
  9. MFC 教程【14_SOCKET类的设计和实现】
  10. linux虚拟主机用织梦,织梦程序用什么虚拟主机很服务器好
  11. 【C++软件开发】面试经典题目汇总
  12. linux shell 数字雨,cmd命令如何实现数字雨的效果
  13. [FUNC]ObjRegisterActive
  14. 《github精选系列》——非常有趣实用的python爬虫例子
  15. 去重数组中相同的字符串
  16. 怎么做软件开发,软件开发流程八个步骤
  17. 解决C盘容量不够的一种方法
  18. 尚硅谷MySQL学习
  19. 《提莫必须死》应用隐私政策声明
  20. 健身运动装备有哪些?双十一运动健身装备推荐

热门文章

  1. 13/100. Best Time to Buy and Sell Stock
  2. 为KindEditor编辑器中的内容增加样式,使得自定义前台页面显示效果与编辑器效果一致
  3. python 面向对象 私有化浅析
  4. ThinkPHP中的display()和fetch()的区别
  5. 上白泽慧音(tarjan,图的染色)
  6. 服务管理-文件服务器
  7. [转载]We Recommend a Singular Value Decomposition
  8. 【Python自动化运维之路Day2】
  9. WPF in Visual Studio 2010
  10. 安装Tomcat6.0