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 操作符汇总
Nov 08 Javascript
JavaScript将数字转换成大写中文的方法
Mar 23 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
Aug 09 Javascript
js实现PC端和移动端刮卡效果
Mar 27 Javascript
详解webpack+gulp实现自动构建部署
Jun 29 Javascript
js实现随机点名系统(实例讲解)
Oct 18 Javascript
Vue之Vue.set动态新增对象属性方法
Feb 23 Javascript
js canvas实现二维码和图片合成的海报
Nov 19 Javascript
layui表单提交到后台自动封装到实体类的方法
Sep 12 Javascript
JS实现横向轮播图(中级版)
Jan 18 Javascript
JavaScript数组常用的增删改查与其他属性详解
Oct 13 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
Nov 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
用PHP创建PDF中文文档
2006/10/09 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
详解PHP对数组的定义以及数组的创建方法
2015/11/27 PHP
Yii2单元测试用法示例
2016/11/12 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
vue watch关于对象内的属性监听
2019/04/22 Javascript
详解如何使用nvm管理Node.js多版本
2019/05/06 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
Vue SPA 首屏优化方案
2021/02/26 Vue.js
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
Python中字典的浅拷贝与深拷贝用法实例分析
2018/01/02 Python
Python File(文件) 方法整理
2019/02/18 Python
python3中替换python2中cmp函数的实现
2019/08/20 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
python绘制雪景图
2019/12/16 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
互动出版网:专业书籍
2017/03/21 全球购物
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
银行演讲稿范文
2014/01/03 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
手机销售员岗位职责
2015/04/11 职场文书
业务员年终工作总结2015
2015/05/28 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL