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中的Document文档对象
Jan 16 Javascript
JavaScript 继承详解(一)
Jul 13 Javascript
function foo的原型与prototype属性解惑
Nov 19 Javascript
js 实现css风格选择器(压缩后2KB)
Jan 12 Javascript
使用jQuery避免鼠标双击的解决方案
Aug 21 Javascript
简单的jQuery入门指引
Jul 28 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
Oct 16 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
Jan 06 Javascript
jQuery获取同级元素的简单代码
Jul 09 Javascript
Boostrap实现的登录界面实例代码
Oct 09 Javascript
Vue中实现回车键切换焦点的方法
Feb 19 Javascript
微信小程序onShareTimeline()实现分享朋友圈
Jan 07 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数组使用规则分析
2015/02/27 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
2016/11/22 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
动态加载dtree.js树treeview(示例代码)
2013/12/17 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
JavaScript DOM 对象深入了解
2016/07/20 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
在python中对变量判断是否为None的三种方法总结
2019/01/23 Python
Python循环结构的应用场景详解
2019/07/11 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
python识别验证码的思路及解决方案
2020/09/13 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
分享8款纯CSS3实现的搜索框功能
2017/09/14 HTML / CSS
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
都柏林通行卡/城市通票:The Dublin Pass
2020/02/16 全球购物
2014光棍节单身联谊活动策划书
2014/10/10 职场文书
教师岗位职责范本
2015/04/02 职场文书
亲情作文之母爱
2019/09/25 职场文书
Python pygame实现中国象棋单机版源码
2021/06/20 Python