麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

JavaScript+html5 canvas制作的百花齊放效果完整實例

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

本文實例講述了JavaScript+html5 canvas制作的百花齊放效果。分享給大家供大家參考,具體如下:

運行效果截圖如下:

具體代碼如下:

<!DOCTYPE html><html> <head>  <title>demo</title>  <style type="text/css">   body {    margin:0; padding:0;    }   #canvas {    border:5px solid gray; box-shadow:0 0 15px 15px #494949 inset;    margin-top:50px; margin-left:200px;   }  </style> </head> <body >  <canvas id="canvas" width="1000px" height="500px"></canvas>  <script type="text/javascript">   var dyl = {};   dyl.canvas = document.getElementById("canvas");   dyl.ctx = dyl.canvas.getContext("2d");   dyl.runTime = 0;   dyl.colorList = "01234567890ABCDEFabcdef".split("");   dyl.colorListLength = dyl.colorList.length;   dyl.arcList = null;   /**   * 得到16進制隨機顏色值   */   dyl.getColor = function() {    var color = "#";    for(var i=0; i<6; i++) {     color += dyl.colorList[Math.floor(Math.random()*dyl.colorListLength)];    }    return color;   };   /**   * 一個隨機角度,隨機初始速度的斜拋對象   */   var Arc = function(i) {    // 設置自有屬性    this.v = Math.round(Math.random()*100)+50;    this.angle = Math.round(Math.random()*145) + 45;    this.startTime = +new Date();    this._angle = this.angle/180*Math.PI;    this.v_x = this.v*Math.cos(this._angle);    this.v_y_start = this.v*Math.sin(this._angle);    this.color = dyl.getColor();    this.x = 500;    this.g = 250;    this.y = 490;    this.index = i;    var _self = this;    this.run = function() {     var endTime = +new Date();     var timeSpan = (endTime - _self.startTime)/1000;     var v_y_now = _self.v_y_start - 1/2*_self.g*Math.pow(timeSpan, 2);     _self.x = _self.x +_self.v_x * timeSpan;     _self.y = _self.y - (_self.v_y_start * timeSpan - 1/2*_self.g*Math.pow(timeSpan, 2));     return this;    };    return this;   };   /**   * 全局繪制圖像   */   dyl.draw = function() {    var arcList = dyl.arcList;    var ctx = dyl.ctx;    dyl.runTime++;    for(var i=0, length=arcList.length; i<length; i++) {     var arc = arcList[i];     if(!arc) {      continue;     }     arc.run();     ctx.save();     ctx.beginPath();     ctx.fillStyle = arc.color;     ctx.arc(arc.x, arc.y, 2, 0, Math.PI*2);     ctx.fill();     ctx.closePath();     ctx.restore();    }    console.log(dyl.runTime);    if(dyl.runTime >= 25) {     setTimeout(dyl.init, 1050);    } else {     setTimeout(dyl.draw, 20);    }   };   /**   * 初始化整個事件   */   dyl.init = function() {    dyl.ctx.clearRect(0, 0, 1000, 500);    dyl.arcList = [];    dyl.runTime = 0;    for(var i=0; i<100; i++) {     dyl.arcList.push(new Arc(i));    }    dyl.draw();   };   dyl.init();  </script> </body></html>

更多關于js特效相關內容感興趣的讀者可查看本站專題:《jQuery動畫與特效用法總結》及《jQuery常見經典特效匯總

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久国产精品网 | 毛片在线免费观看完整版 | 欧美日韩在线影院 | 欧美一级精品片在线看 | 久久久久久久久免费 | 91av国产在线| 黄色网欧美 | 欧美精品 | 在线成人看片 | 久久国产精品久久精品国产演员表 | 国产亚洲精品久久久久久久软件 | 91精品国产免费久久 | 毛片免费观看视频 | 国产精品免费一区二区 | 国产一区二精品区在线 | 久久亚洲精品久久国产一区二区 | 亚洲综合网站 | 国产二区三区在线播放 | 亚洲午夜精选 | 999插插插| 精品一区二区三区免费毛片 | 国产青草视频在线观看 | 粉嫩粉嫩一区二区三区在线播放 | 91精品国产综合久久男男 | 欧美精品18 | 精品一区二区久久久久久按摩 | 久久草在线视频国产 | 91久久国产露脸精品免费 | 欧美日韩电影在线 | 九色com| 欧美性生交大片 | 免费国产人成网站 | 国产午夜精品一区二区三区视频 | 久久久久久久久久综合 | 国产91大片 | 2级毛片 | 国产免费小视频在线观看 | 久久久久久久久久久一区 | 黄污在线看 | 91精品国 | 国产成人高清成人av片在线看 |