HTML5 随机弹跳的小球

简介: 原文:HTML5 随机弹跳的小球查看效果:http://keleyi.com/a/bjad/tc1y11dy.htmChrome效果图:火狐效果图:以下是源码: 1 doctype html> 2 3 4 HTML5 随机弹跳的小球-柯乐义 5 6 b...
原文: HTML5 随机弹跳的小球

查看效果:http://keleyi.com/a/bjad/tc1y11dy.htm

Chrome效果图:


火狐效果图:



以下是源码:

  1 <!doctype html>
  2 <html>
  3 <head>
  4 <title>HTML5 随机弹跳的小球-柯乐义</title>
  5 <style>
  6 body{
  7 font-family: 微软雅黑;    
  8 }
  9 body,h1{
 10 margin:0;
 11 }
 12 canvas{
 13 display:block;margin-left: auto;margin-right: auto;
 14 border:1px solid #DDD;    
 15 background: -webkit-linear-gradient(top, #222,#111);
 16 }    
 17 </style>
 18 </head>
 19 <body>
 20 <h1>柯乐义 HTML5特效 随机弹跳的小球</h1>
 21 <div>请使用支持HTML5的浏览器开打本页。<a href="http://keleyi.com/a/bjad/tc1y11dy.htm" target="_blank">原文</a> <button id="stop-keleyi-com">暂停</button>
 22 <button id="run-keleyi-com">继续</button>
 23 <button id="addBall-keleyi-com">增加小球</button> <button onclick="javascript:window.location.reload();">刷新</button>
 24 <br />每次刷新页面的小球大小,颜色,运动路线,都是新的,可以点击上面各个按钮看看效果。
 25 </div>
 26 <canvas id="canvas-keleyi-com" >
 27 
 28 </canvas>
 29 
 30 <script type="text/javascript" src="http://keleyi.com/keleyi/pmedia/jquery/jquery-1.11.0.min.js"></script>
 31 <script type="text/javascript">
 32 var nimo = {
 33 aniamted: null,
 34 content: null,
 35 data: {
 36 radiusRange: [5, 20],
 37 speedRange: [-5, 5],
 38 scrollHeight: null,
 39 scrollWdith: null
 40 },
 41 balls: [],
 42 ele: {
 43 canvas: null
 44 },
 45 fn: {
 46 creatRandom: function (startInt, endInt) {//生产随机数
 47 var iResult;
 48 iResult = startInt + (Math.floor(Math.random() * (endInt - startInt + 1)));
 49 return iResult
 50 },
 51 init: function () {
 52 nimo.data.scrollWdith = document.body.scrollWidth;
 53 nimo.data.scrollHeight = document.body.scrollHeight;
 54 nimo.ele.canvas = document.getElementById('canvas-ke'+'leyi-com');
 55 nimo.content = nimo.ele.canvas.getContext('2d');
 56 nimo.ele.canvas.width = nimo.data.scrollWdith - 50;
 57 nimo.ele.canvas.height = nimo.data.scrollHeight - 100;
 58 },
 59 addBall: function () {
 60 var aRandomColor = [];
 61 aRandomColor.push(nimo.fn.creatRandom(0, 255));
 62 aRandomColor.push(nimo.fn.creatRandom(0, 255));
 63 aRandomColor.push(nimo.fn.creatRandom(0, 255));
 64 var iRandomRadius = nimo.fn.creatRandom(nimo.data.radiusRange[0], nimo.data.radiusRange[1]);
 65 var oTempBall = {
 66 coordsX: nimo.fn.creatRandom(iRandomRadius, nimo.ele.canvas.width - iRandomRadius),
 67 coordsY: nimo.fn.creatRandom(iRandomRadius, nimo.ele.canvas.height - iRandomRadius),
 68 radius: iRandomRadius,
 69 bgColor: 'rgba(' + aRandomColor[0] + ',' + aRandomColor[1] + ',' + aRandomColor[2] + ',0.5)'
 70 };
 71 oTempBall.speedX = nimo.fn.creatRandom(nimo.data.speedRange[0], nimo.data.speedRange[1]);
 72 if (oTempBall.speedX === 0) {
 73 oTempBall.speedX = 1
 74 }
 75 if (oTempBall.speedY === 0) {
 76 oTempBall.speedY = 1
 77 }
 78 oTempBall.speedY = nimo.fn.creatRandom(nimo.data.speedRange[0], nimo.data.speedRange[1]);
 79 nimo.balls.push(oTempBall)
 80 },
 81 drawBall: function (bStatic) {
 82 var i, iSize;
 83 nimo.content.clearRect(0, 0, nimo.ele.canvas.width, nimo.ele.canvas.height)
 84 for (var i = 0, iSize = nimo.balls.length; i < iSize; i++) {
 85 var oTarger = nimo.balls[i];
 86 nimo.content.beginPath();
 87 nimo.content.arc(oTarger.coordsX, oTarger.coordsY, oTarger.radius, 0, 10);
 88 nimo.content.fillStyle = oTarger.bgColor;
 89 nimo.content.fill();
 90 if (!bStatic) {
 91 if (oTarger.coordsX + oTarger.radius >= nimo.ele.canvas.width) {
 92 oTarger.speedX = -(Math.abs(oTarger.speedX))
 93 }
 94 if (oTarger.coordsX - oTarger.radius <= 0) {
 95 oTarger.speedX = Math.abs(oTarger.speedX)
 96 }
 97 if (oTarger.coordsY - oTarger.radius <= 0) {
 98 oTarger.speedY = Math.abs(oTarger.speedY)
 99 }
100 if (oTarger.coordsY + oTarger.radius >= nimo.ele.canvas.height) {
101 oTarger.speedY = -(Math.abs(oTarger.speedY))
102 }
103 oTarger.coordsX = oTarger.coordsX + oTarger.speedX;
104 oTarger.coordsY = oTarger.coordsY + oTarger.speedY;
105 }
106 }
107 },
108 run: function () {
109 nimo.fn.drawBall();
110 nimo.aniamted = setTimeout(function () {
111 nimo.fn.drawBall();
112 nimo.aniamted = setTimeout(arguments.callee, 10)
113 }, 10)
114 },
115 stop: function () {
116 clearTimeout(nimo.aniamted)
117 }
118 }
119 }
120 window.onload = function () {
121 nimo.fn.init();
122 var i;
123 for (var i = 0; i < 10; i++) {
124 nimo.fn.addBall();
125 }
126 nimo.fn.run();
127 document.getElementById('stop-kel'+'eyi-com').onclick = function () {
128 nimo.fn.stop()
129 }
130 document.getElementById('run-keley'+'i-com').onclick = function () {
131 nimo.fn.stop()
132 nimo.fn.run()
133 }
134 document.getElementById('addBall-k'+'eleyi-com').onclick = function () {
135 var i;
136 for (var i = 0; i < 10; i++) {
137 nimo.fn.addBall();
138 }
139 nimo.fn.drawBall(true);
140 }
141 }
142 </script>
143 </body>
144 </html>

web前端:http://www.cnblogs.com/jihua/p/webfront.html

目录
相关文章
|
2月前
|
移动开发 HTML5
HTML5熊猫弹跳手机小游戏源码
一款html5手机端小游戏源码,熊猫跳跃小游戏源码下载。熊猫脚底有弹簧,长按变化力度跳跃,计分游戏,html5手机熊猫也疯狂小游戏源代码。
59 5
|
4天前
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
2天前
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
4天前
html+js+css实现的建筑方块立体数字时钟源码
html+js+css实现的建筑方块立体数字时钟源码
57 33
|
3天前
|
前端开发
“弘五四,耀青春”程序创意获奖作品【html+css】
本作品以“青春筑梦,共创未来”为主题,采用动态龙元素展现青春活力与创新精神。页面设计简洁明快,色彩协调,突显年轻人积极向上的风貌。作品内容包括获奖截图、名字《时代扬新帆》及源代码分享。特别说明:禁止用于商业活动,可用于比赛和作业等开源场景。最后,作者表达了对五四精神的致敬与传承,强调了青春活力和创造力的重要性,并感谢评委和支持者。 **获奖感言摘录:** “获得这个奖项,对我们团队来说,既是认可也是激励。我们将继续努力,不断优化产品,为用户带来更好的体验,为社会贡献更多价值。”
16 2
|
25天前
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
103 24
|
2月前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
94 7
|
2月前
|
移动开发 前端开发 JavaScript
[HTML、CSS]细节与使用经验
本文总结了前端开发中的一些重要细节和技巧,包括CSS选择器、定位、层级、全局属性、滚轮控制、轮播等。作者以纯文字形式记录,便于读者使用<kbd>Ctrl + F</kbd>快速查找相关内容。文章还提供了示例代码,帮助读者更好地理解和应用这些知识点。
53 1
|
2月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
56 6

热门文章

最新文章