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中匿名函数,函数直接量和闭包
May 08 Javascript
jQuery AJAX回调函数this指向问题
Feb 08 Javascript
JS实现点击下载的小例子
Jul 10 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
Oct 20 Javascript
Javascript中的几种URL编码方法比较
Jan 23 Javascript
JavaScript简单修改窗口大小的方法
Aug 03 Javascript
微信小程序使用modal组件弹出对话框功能示例
Nov 29 Javascript
vue awesome swiper异步加载数据出现的bug问题
Jul 03 Javascript
vue生成token并保存到本地存储中
Jul 17 Javascript
jQuery判断自定义属性data-val用法示例
Jan 07 jQuery
服务端预渲染之Nuxt(使用篇)
Apr 08 Javascript
Node.js API详解之 V8模块用法实例分析
Jun 05 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
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
php实现XSS安全过滤的方法
2015/07/29 PHP
php简单统计在线人数的方法
2016/05/10 PHP
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
JS获取鼠标选中的文字
2016/08/10 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
Python表达式的优先级详解
2020/02/18 Python
零基础学python应该从哪里入手
2020/08/11 Python
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
英国现代绅士品牌:Hackett
2017/12/17 全球购物
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
生产车间主管岗位职责
2013/12/28 职场文书
创先争优承诺书范文
2014/03/31 职场文书
代理人委托书
2014/08/01 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
七一活动主持词
2015/06/29 职场文书
Python中的 enumerate和zip详情
2022/05/30 Python
基于redis+lua进行限流的方法
2022/07/23 Redis