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 相关文章推荐
JavaScript 判断判断某个对象是Object还是一个Array
Jan 28 Javascript
js function使用心得
May 10 Javascript
jQuery ul标签下拉菜单演示代码
Dec 11 Javascript
javascript分页代码实例分享(js分页)
Dec 13 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
Apr 01 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
Jan 25 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
Mar 05 Javascript
php基于redis处理session的方法
Mar 14 Javascript
js 定义对象数组(结合)多维数组方法
Jul 27 Javascript
vue中如何去掉空格的方法实现
Nov 09 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
Aug 01 Javascript
vue设置一开始进入的页面教程
Oct 28 Javascript
原生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将数据库中所有内容生成静态html文档的代码
2010/04/12 PHP
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
2018/04/27 PHP
Laravel5.1 框架响应基本用法实例分析
2020/01/04 PHP
使用javascript实现ListBox左右全选,单选,多选,全请
2013/11/07 Javascript
Javascript模拟加速运动与减速运动代码分享
2014/12/11 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
JavaScript 中调用 Kotlin 方法实例详解
2017/06/09 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
JS实现将链接生成二维码并转为图片的方法
2018/03/17 Javascript
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
Vue infinite update loop的问题解决
2019/04/23 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
解决Django no such table: django_session的问题
2020/04/07 Python
python中Mako库实例用法
2020/12/31 Python
Omio美国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/08 全球购物
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
医学生求职自荐信
2013/10/25 职场文书
日语专业推荐信
2013/11/12 职场文书
项目专员岗位职责
2013/12/04 职场文书
播音主持专业个人自我评价
2014/01/09 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
2016教师校本研修心得体会
2016/01/08 职场文书
创业计划书之书店
2019/09/10 职场文书
python数字图像处理之图像的批量处理
2022/06/28 Python