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 相关文章推荐
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
Aug 24 Javascript
深入了解javascript中的prototype与继承
Apr 14 Javascript
javascript中的toFixed固定小数位数 简单实例分享
Jul 12 Javascript
jQuery中ajax的使用与缓存问题的解决方法
Dec 19 Javascript
js仿百度音乐全选操作
Jan 13 Javascript
微信小程序 网络请求(post请求,get请求)
Jan 17 Javascript
vue实现简单表格组件实例详解
Apr 16 Javascript
AngularJS 中的数据源的循环输出
Oct 12 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
May 08 Javascript
vue.js 2.0实现简单分页效果
Jul 29 Javascript
浅谈vue权限管理实现及流程
Apr 23 Javascript
ES6学习教程之Promise用法详解
Nov 22 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
linux下编译安装memcached服务
2014/08/03 PHP
dojo 之基础篇
2007/03/24 Javascript
Javascript &amp; DHTML 实例编程(教程)基础知识
2007/06/02 Javascript
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
javascript for循环设法提高性能
2010/02/24 Javascript
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
webpack+vue-cli项目中引入外部非模块格式js的方法
2018/09/28 Javascript
Echarts之悬浮框中的数据排序问题
2018/11/08 Javascript
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
Python调用C++程序的方法详解
2017/01/24 Python
Python 装饰器使用详解
2017/07/29 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
python如何读取bin文件并下发串口
2019/07/05 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
《童年》教学反思
2014/02/18 职场文书
大一新生学期自我评价
2014/04/09 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
聘任证明怎么写
2015/03/02 职场文书
Win10 最新稳定版本 21H2开始推送
2022/04/19 数码科技