本文实例讲述了JS实现随机乱撞彩色圆球特效的方法。分享给大家供大家参考。具体实现方法如下:
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS实现的随机乱撞的彩色圆球特效代码</title> <style> body{ font-family: 微软雅黑; } body,h1{ margin:0; } canvas{ display:block;margin-left: auto;margin-right: auto; border:1px solid #DDD; background: -webkit-linear-gradient(top, #222,#111); } </style> </head> <body> <h1 id="JS实现的随机乱撞的彩色圆球特效代码">JS实现的随机乱撞的彩色圆球特效代码</h1> <canvas id="canvas" > </canvas> <button id="stop">stop</button> <button id="run">run</button> <button id="addBall">addBall</button> <script src="jquery-1.6.2.min.js"></script> <script> var nimo={ aniamted:null, content:null, data:{ radiusRange:[5,20], speedRange:[-5,5], scrollHeight:null, scrollWdith:null }, balls:[], ele:{ canvas:null }, fn:{ creatRandom:function(startInt,endInt){//生产随机数 var iResult; iResult=startInt+(Math.floor(Math.random()*(endInt-startInt+1))); return iResult }, init:function(){ nimo.data.scrollWdith=document.body.scrollWidth; nimo.data.scrollHeight=document.body.scrollHeight; nimo.ele.canvas=document.getElementById('canvas'); nimo.content=nimo.ele.canvas.getContext('2d'); nimo.ele.canvas.width=nimo.data.scrollWdith-50; nimo.ele.canvas.height=nimo.data.scrollHeight-100; }, addBall:function(){ var aRandomColor=[]; aRandomColor.push(nimo.fn.creatRandom(0,255)); aRandomColor.push(nimo.fn.creatRandom(0,255)); aRandomColor.push(nimo.fn.creatRandom(0,255)); var iRandomRadius=nimo.fn.creatRandom(nimo.data.radiusRange[0],nimo.data.radiusRange[1]); var oTempBall={ coordsX:nimo.fn.creatRandom(iRandomRadius,nimo.ele.canvas.width-iRandomRadius), coordsY:nimo.fn.creatRandom(iRandomRadius,nimo.ele.canvas.height-iRandomRadius), radius:iRandomRadius, bgColor:'rgba('+aRandomColor[0]+','+aRandomColor[1]+','+aRandomColor[2]+',0.5)' }; oTempBall.speedX=nimo.fn.creatRandom(nimo.data.speedRange[0],nimo.data.speedRange[1]); if(oTempBall.speedX===0){ oTempBall.speedX=1 } if(oTempBall.speedY===0){ oTempBall.speedY=1 } oTempBall.speedY=nimo.fn.creatRandom(nimo.data.speedRange[0],nimo.data.speedRange[1]); nimo.balls.push(oTempBall) }, drawBall:function(bStatic){ var i,iSize; nimo.content.clearRect(0,0,nimo.ele.canvas.width,nimo.ele.canvas.height) for(var i=0,iSize=nimo.balls.length;i<iSize;i++){ var oTarger=nimo.balls[i]; nimo.content.beginPath(); nimo.content.arc(oTarger.coordsX,oTarger.coordsY,oTarger.radius,0,10); nimo.content.fillStyle=oTarger.bgColor; nimo.content.fill(); if(!bStatic){ if(oTarger.coordsX+oTarger.radius>=nimo.ele.canvas.width){ oTarger.speedX=-(Math.abs(oTarger.speedX)) } if(oTarger.coordsX-oTarger.radius<=0){ oTarger.speedX=Math.abs(oTarger.speedX) } if(oTarger.coordsY-oTarger.radius<=0){ oTarger.speedY=Math.abs(oTarger.speedY) } if(oTarger.coordsY+oTarger.radius>=nimo.ele.canvas.height){ oTarger.speedY=-(Math.abs(oTarger.speedY)) } oTarger.coordsX=oTarger.coordsX+oTarger.speedX; oTarger.coordsY=oTarger.coordsY+oTarger.speedY; } } }, run:function(){ nimo.fn.drawBall(); nimo.aniamted=setTimeout(function(){ nimo.fn.drawBall(); nimo.aniamted=setTimeout(arguments.callee,10) },10) }, stop:function(){ clearTimeout(nimo.aniamted) } } } window.onload=function(){ nimo.fn.init(); var i; for(var i=0;i<10;i++){ nimo.fn.addBall(); } nimo.fn.run(); document.getElementById('stop').onclick=function(){ nimo.fn.stop() } document.getElementById('run').onclick=function(){ nimo.fn.stop() nimo.fn.run() } document.getElementById('addBall').onclick=function(){ var i; for(var i=0;i<10;i++){ nimo.fn.addBall(); } nimo.fn.drawBall(true); } } </script> </body> </html>
希望本文所述对大家的javascript程序设计有所帮助。

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。 1.Python以简洁语法和丰富库生态着称,适用于数据分析和Web开发。 2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安装,因为它已内置于现代浏览器中。你只需文本编辑器和浏览器即可开始使用。1)在浏览器环境中,通过标签嵌入HTML文件中运行。2)在Node.js环境中,下载并安装Node.js后,通过命令行运行JavaScript文件。

如何在Quartz中提前发送任务通知在使用Quartz定时器进行任务调度时,任务的执行时间是由cron表达式设定的。现�...

在JavaScript中如何获取原型链上函数的参数在JavaScript编程中,理解和操作原型链上的函数参数是常见且重要的任�...

在微信小程序web-view中使用Vue.js动态style位移失效的原因分析在使用Vue.js...

在Tampermonkey中如何对多个链接进行并发GET请求并依次判断返回结果?在Tampermonkey脚本中,我们经常需要对多个链...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Linux新版
SublimeText3 Linux最新版

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3汉化版
中文版,非常好用

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。