canvas绘制万花筒效果(代码分享)


Posted in Javascript onJanuary 20, 2017

话不多说,请看代码:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>万花筒</title>
<style>
canvas{
 background:#eee;
 }
</style>
<script>
window.onload = function(){
 var canvas = document.getElementById("canvas");
 var cobj = canvas.getContext("2d");
 var arr = [];
 var t=setInterval(function(){
  cobj.clearRect(0,0,600,600);
   for(var i=0;i<arr.length;i++){
  cobj.save();
  cobj.translate(300,300);
  cobj.scale(arr[i].scales,arr[i].scales);
  cobj.rotate(arr[i].angle*Math.PI/180);
  cobj.fillStyle = arr[i].color;
  cobj.fillRect(arr[i].num,arr[i].num,30,30);
  cobj.restore();
 }
 },50);
 setInterval(function(){
  for(var i=0;i<arr.length;i++){
    if(arr[i].num<=0){
   arr.splice(i,1);
   continue;
  }
  arr[i].angle+=2;
  arr[i].num-=0.2;
  arr[i].scales-=0.002;
  if(arr[i].scales<=0.2){
   arr[i].scales=0.2;
   }
  }
  },50);
 setInterval(function(){
  var rect = {angle:0,num:150,scales:1,color:"rgb("+parseInt(Math.random()*255)+","+parseInt(Math.random()*255)+","+parseInt(Math.random()*255)+")"};
  arr.push(rect);
  },600);
 }
</script>
</head>
<body>
<canvas width="600" height="600" id="canvas"></canvas>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
json对象转字符串如何实现
Dec 02 Javascript
JavaScript初学者应注意的七个细节详细介绍
Dec 27 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
Sep 25 Javascript
js表头排序实现方法
Jan 16 Javascript
javascript相关事件的几个概念
May 21 Javascript
javascript实现在线客服效果
Jul 15 Javascript
纯javascript实现分页(两种方法)
Aug 26 Javascript
自己封装的一个简单的倒计时功能实例
Nov 23 Javascript
javascript监听页面刷新和页面关闭事件方法详解
Jan 09 Javascript
vue使用pdfjs显示PDF可复制的实现方法
Dec 14 Javascript
在pycharm中开发vue的方法步骤
Mar 04 Javascript
详解实现vue的数据响应式原理
Jan 20 Vue.js
原生js实现网页顶部自动下拉/收缩广告效果
Jan 20 #Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
Jan 20 #Javascript
轻松理解Javascript变量的相关问题
Jan 20 #Javascript
js+css3实现旋转效果
Jan 20 #Javascript
Bootstrap 手风琴菜单的实现代码
Jan 20 #Javascript
浅谈angularjs $http提交数据探索
Jan 20 #Javascript
原生js实现无限循环轮播图效果
Jan 20 #Javascript
You might like
PHP版微信公众平台红包API
2015/04/02 PHP
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
jquery实现心算练习代码
2010/12/06 Javascript
js获取当前路径的简单示例代码
2014/01/08 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
2016/06/14 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
vue2.0中set添加属性后视图不能更新的解决办法
2019/02/22 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
浅谈python实现Google翻译PDF,解决换行的问题
2018/11/28 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
python 实现一个图形界面的汇率计算器
2020/11/09 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
.NET方向面试题
2014/11/20 面试题
长青弘远的面试题
2012/06/09 面试题
就业推荐自我鉴定
2013/10/06 职场文书
应届生的求职推荐信范文
2013/11/30 职场文书
优秀士兵个人事迹材料
2014/01/19 职场文书
责任心演讲稿
2014/05/14 职场文书
拓展训练激励口号
2014/06/17 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书
使用CSS实现黑白格背景效果
2022/06/01 HTML / CSS