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 相关文章推荐
从阿里妈妈发现的几个不错的表单验证函数
Sep 21 Javascript
jquery中使用循环下拉菜单示例代码
Sep 24 Javascript
JS动态添加iframe的代码
Sep 14 Javascript
javascript 将共享属性迁移到原型中去的实现方法
Aug 31 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
Oct 12 Javascript
Angular 常用指令实例总结整理
Dec 13 Javascript
jQuery:unbind方法的使用详解
Aug 14 jQuery
React Native中的RefreshContorl下拉刷新使用
Oct 09 Javascript
Angular4绑定html内容出现警告的处理方法
Nov 03 Javascript
Vue开发之封装分页组件与使用示例
Apr 25 Javascript
使用Bootstrap做一个朝代历史表
Dec 10 Javascript
Element Input输入框的使用方法
Jul 26 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
2006/12/23 PHP
swfupload 多文件上传实现代码
2008/08/27 PHP
php cli 方式 在crotab中运行解决
2010/02/08 PHP
PHP可变函数学习小结
2015/11/29 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
Javascript 中介者模式实例
2009/12/16 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
微信小程序实现购物页面左右联动
2019/02/15 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
axios异步提交表单数据的几种方法
2019/08/11 Javascript
element-ui 本地化使用教程详解
2019/10/28 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
python中的一些类型转换函数小结
2013/02/10 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python操作Redis之设置key的过期时间实例代码
2018/01/25 Python
python实现计数排序与桶排序实例代码
2019/03/28 Python
Python 3.8 新功能全解
2019/07/25 Python
Python实现时间序列可视化的方法
2019/08/06 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
python如何删除列为空的行
2020/07/17 Python
历史学专业个人的自我评价
2013/10/13 职场文书
会计岗位职责范本
2015/04/02 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
Python 如何实现文件自动去重
2021/06/02 Python
JS实现九宫格拼图游戏
2022/06/28 Javascript