本文实例讲述了基于canvas实现的绚丽圆圈效果。分享给大家供大家参考,具体如下:
运行效果截图如下:
具体代码如下:
<!DOCTYPE html> <html> <head> <title>demo</title> <style type="text/css"> body { margin:0; background:black; } #canvas { border:3px solid gray; box-shadow:0px 0px 2px 2px #D5D5D5; margin-left:100px; margin-top:50px; } #power { position:fixed; bottom:50px; right:50px; } #power a { color:green; text-decoration:none; display:inline-block; padding:20px; border:2px solid orange; box-shadow:0px 0px 2px 2px blue; font-size:30px; } </style> </head> <body> <canvas id="canvas" width="500px" height="500px"></canvas> <script type="text/javascript"> var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); var colorList = "abcdefABCDEF0123456789".split(""); var colorListLength = colorList.length; var arcList = []; function createArc(attr) { ctx.beginPath(); ctx.fillStyle = attr.color || "black"; ctx.arc(attr.x, attr.y, attr.r, 0, Math.PI*2); ctx.closePath(); ctx.fill(); } function color() { var color = "#"; for(var i=0; i<6; i++) { color += colorList[Math.round(Math.random()*colorListLength)]; } return color; } function Arc() { this.count = 0; this.r = 5; this.x = Math.round(Math.random()*500); this.add = Math.round(Math.random()*5); this.limit = Math.round(Math.random()*100) this.mode = Math.round(Math.random()); var _self = this; _self.run = function() { if(_self.r >= _self.limit) { _self.run = null; return; } _self.x += _self.add*(_self.mode == 1 ? 1 : -1); createArc({x: _self.x, y:Math.round(Math.random()*400), r: _self.r, color: color()}); _self.r += 5; return _self; }; return this; } var init_count = 150; var init_time = 0; var init = function() { init_time++; arcList.length = 0; for(var i=0; i<init_count; i++) { arcList.push(new Arc()); } }; var reInit = function() { var angle = Math.PI*2/init_count; for(var i=0; i<init_count; i++) { var _angle = i*angle; createArc({x: 250 + 250*Math.cos(_angle), y: 250 + 250*Math.sin(_angle), r: 5, color:color()}); createArc({x: 250 + 200*Math.cos(_angle), y: 250 + 200*Math.sin(_angle), r: 5, color:color()}); createArc({x: 250 + 150*Math.cos(_angle), y: 250 + 150*Math.sin(_angle), r: 5, color:color()}); createArc({x: 250 + 100*Math.cos(_angle), y: 250 + 100*Math.sin(_angle), r: 5, color:color()}); } }; init(); var globalInterval = setInterval(function() { ctx.clearRect(0, 0, 500, 500); var count = 0; for(var i=0; i<init_count; i++) { var arc = arcList[i]; arc.run ? arc.run() : count++; } if(count == init_count) { if(init_time >= 2) { reInit(); return; } init(); } }, 100); </script> </body> </html>
更多关于js特效相关内容感兴趣的读者可查看本站专题:《jQuery动画与特效用法总结》及《jQuery常见经典特效汇总》
希望本文所述对大家JavaScript程序设计有所帮助。
本文向大家介绍基于canvas实现的钟摆效果完整实例,包括了基于canvas实现的钟摆效果完整实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了基于canvas实现的钟摆效果。分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: 更多关于js特效相关内容感兴趣的读者可查看本站专题:《jQuery动画与特效用法总结》及《jQuery常见经典特效汇总》 希望本文所述对大家Ja
本文向大家介绍JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例,包括了JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript+html5 canvas绘制的圆弧荡秋千效果。分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: 更多关于js特效相关内容感兴趣的读者
本文向大家介绍Android编程基于自定义View实现绚丽的圆形进度条功能示例,包括了Android编程基于自定义View实现绚丽的圆形进度条功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程基于自定义View实现绚丽的圆形进度条功能。分享给大家供大家参考,具体如下: 本文包含两个组件,首先上效果图: 1.ProgressBarView1(支持拖动): 2.Prog
本文向大家介绍jquery+css3实现会动的小圆圈效果,包括了jquery+css3实现会动的小圆圈效果的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jquery+css3实现会动的小圆圈效果。分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: 更多关于jQuery特效相关内容感兴趣的读者可查看本站专题:《jQuery常见经典特效汇总》及《jQuery动画与特效用法总
本文向大家介绍C#实现3D效果完整实例,包括了C#实现3D效果完整实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现3D效果的方法。分享给大家供大家参考,具体如下: 一、新建一类文件 注意引用命名空间: 二、页面调用 更多关于C#相关内容感兴趣的读者可查看本站专题:《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程
本文向大家介绍分享33个jQuery与CSS3实现的绚丽鼠标悬停效果,包括了分享33个jQuery与CSS3实现的绚丽鼠标悬停效果的使用技巧和注意事项,需要的朋友参考一下 Animated Opening Type(教程) 漂亮的文字翻开效果,很有意思。 查看演示 Direction-Aware Hover Effect With Css3 And Jquery(教程) 鼠标跟随悬停效果教程,话说