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 相关文章推荐
用JS操作FRAME中的IFRAME及其内容的实现代码
Jul 26 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
Jun 12 Javascript
解析jquery获取父窗口的元素
Jun 26 Javascript
js和as的稳定传值问题解决
Jul 14 Javascript
jquery禁用右键示例
Apr 28 Javascript
javascript与css3动画结合使用小结
Mar 11 Javascript
JavaScript 面向对象与原型
Apr 10 Javascript
ionic 上拉菜单(ActionSheet)实例代码
Jun 06 Javascript
浅析JavaScript中var that=this
Feb 17 Javascript
Angular使用$http.jsonp发送跨站请求的方法
Mar 16 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
Sep 21 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
Nov 29 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如何利用P3P实现跨域
2013/08/24 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
javascript之函数直接量(function(){})()
2007/06/29 Javascript
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
2014/01/02 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
jquery弹出遮掩层效果【附实例代码】
2016/04/28 Javascript
javascript 动态脚本添加的简单方法
2016/10/11 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
原生js检测页面加载完毕的实例
2018/09/11 Javascript
python实现哈希表
2014/02/07 Python
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
Python中正则表达式的用法总结
2019/02/22 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
简历的自我评价
2014/02/03 职场文书
幼儿园家长寄语
2014/04/02 职场文书
植树节标语
2014/06/27 职场文书
创先争优公开承诺书
2014/08/30 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python
关于Python中进度条的六个实用技巧分享
2022/04/05 Python
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL
A22国内电台短波广播频率表
2022/05/10 无线电