国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

基于canvas實現的絢麗圓圈效果完整實例

2019-11-20 10:41:42
字體:
來源:轉載
供稿:網友

本文實例講述了基于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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 正镶白旗| 林州市| 乌拉特中旗| 米脂县| 依安县| 泰安市| 泾源县| 平乐县| 贵阳市| 商河县| 靖边县| 松原市| 南阳市| 南澳县| 靖西县| 桂林市| 东安县| 井冈山市| 五莲县| 射洪县| 德阳市| 湖南省| 延吉市| 根河市| 天祝| 海兴县| 贡觉县| 蓬莱市| 禄劝| 航空| 遵义县| 贵德县| 秭归县| 黄石市| 双峰县| 山阴县| 泸西县| 施秉县| 澄迈县| 富裕县| 寿光市|