JavaScript+html5 canvas制作色彩斑斓的正方形效果


Posted in Javascript onJanuary 27, 2016

本文实例讲述了JavaScript+html5 canvas制作色彩斑斓的正方形效果。分享给大家供大家参考,具体如下:

运行效果截图如下:

JavaScript+html5 canvas制作色彩斑斓的正方形效果

index.html:

<!DOCTYPE html>
<html>
 <head>
  <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
  <title>canvas中的透明度</title>
  <style type="text/css">
   #canvas {
    background:black; margin-top:100px; margin-left:200px;
   }
  </style>
 </head>
 <body>
  <canvas id="canvas" width="500px" height="500px" ></canvas>
 </body>
 <script type="text/javascript" src="canvas.js"></script>
 <script type="text/javascript">
  cache = {};
  var offsetX = 50,
   offsetY = 20;
  cache.context = dyl.createContext('canvas');
  for(var i=0; i<10; i++) {
   for(var j=0; j<10; j++) {
    var alpha = j * 0.1 + 0.1;
    (function(i, j ,alpha) {
     setTimeout(function() {
      dyl.rect(dyl.createColor(), i*50, j*50, 100, 100, alpha);
     }, 100*j*i);
    })(i, j ,alpha);
   }
  }
 </script>
</html>

canvas.js:

(function() {
  var dyl = {cache: {}};
  dyl.setContext = function(context) {
    dyl.cache._context = context;
    return context;
  };
  dyl.getDom = function(id) {
    return document.getElementById(id);
  };
  dyl._getContext = function() {
    return dyl.cache._context;
  };
  dyl.save = function() {
    var context = dyl._getContext();
    context ? context.save() : void(0);
  };
  dyl.restore = function() {
    var context = dyl._getContext();
    context ? context.restore() : void(0);
  };
  dyl.createContext = function(canvasID) {
    var canvas = this.getDom(canvasID);
    if(!canvas) {
      return null;
    }
    return dyl.setContext(canvas.getContext("2d"));
  };
  dyl.createColor = function() {
    var color = "rgb(";
    color += Math.round(Math.random()*255);
    color += ",";
    color += Math.round(Math.random()*255);
    color += ",";
    color += Math.round(Math.random()*255);
    color += ")";
    return color;
  };
  dyl.addImg = function(img, x, y) {
    var context = dyl._getContext();
    if(!img || !context) {
      return;
    }
    if(typeof img === "string") {
      var oImg = new Image();
      oImg.src = img;
      oImg.onload = function() {
        context.drawImage(oImg, x, y);
      }
      return;
    } 
    context.drawImage(img, x, y);
  };
  dyl.rect = function(color, x, y, width, height, alpha) {
    var context = dyl._getContext();
    if(!context) {
      return;
    }
    context.save();
    context.fillStyle = color;
    context.globalAlpha = alpha ? alpha : 1;
    context.fillRect(x, y, width, height);
    context.restore();
  };
  dyl.circle = function(color, x, y, r, alpha) {
    var context = dyl._getContext();
    context.save();
    context.fillStyle = color;
    context.beginPath();
    context.globalAlpha = alpha ? alpha : 1;
    context.arc(x, y, r, 0, 2*Math.PI);
    context.fill();
    context.stroke();
  };
  dyl.clearRect = function(x, y, width, height) {
    var context = dyl._getContext();
    if(!context) {
      return;
    }
    context.clearRect(x, y, width, height);
  };
  dyl.scale = function(x, y) {
    var context = dyl._getContext();
    if(!context) {
      return;
    }
    x = x ? x : 1;
    y = y ? y : 1;
    context.scale(x, y);
  };
  if(!window.dyl) {
    window.dyl = dyl;
  }
})();

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
firefox下frameset取不到值的解决方法
Sep 06 Javascript
jquery 元素相对定位代码
Oct 15 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
Dec 04 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
Jun 29 Javascript
jquery的ajax异步请求接收返回json数据实例
Jun 16 Javascript
js中style.display=&quot;&quot;无效的解决方法
Oct 30 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
Jun 17 Javascript
jQuery图片左右滚动代码 有左右按钮实例
Jun 20 Javascript
深入理解js generator数据类型
Aug 16 Javascript
js实现年月日表单三级联动
Apr 17 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
Jun 05 Javascript
Vue中引入svg图标的两种方式
Jan 14 Vue.js
APP中javascript+css3实现下拉刷新效果
Jan 27 #Javascript
jQuery EasyUi实战教程之布局篇
Jan 26 #Javascript
jQuery Easyui实现左右布局
Jan 26 #Javascript
AngualrJS中的Directive制作一个菜单
Jan 26 #Javascript
js实现网页图片延时加载 提升网页打开速度
Jan 26 #Javascript
详解javascript new的运行机制
Jan 26 #Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
Jan 26 #Javascript
You might like
php实现可用于mysql,mssql,pg数据库操作类
2014/12/13 PHP
引用外部js乱码问题分析及解决方案
2013/04/12 Javascript
javascript实现切换td中的值
2014/12/05 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
完美实现八种js焦点轮播图(上篇)
2016/07/18 Javascript
jQuery图片瀑布流的简单实现代码
2017/03/15 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
Python的一些用法分享
2012/10/07 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
python中字符串内置函数的用法总结
2018/09/13 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
python3 线性回归验证方法
2019/07/09 Python
python内置模块collections知识点总结
2019/12/19 Python
python Tensor和Array对比分析
2020/01/08 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
Pygame框架实现飞机大战
2020/08/07 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
Woods官网:加拿大最古老、最受尊敬的户外品牌之一
2020/09/12 全球购物
水务局局长岗位职责
2013/11/28 职场文书
小学教师事迹材料
2014/01/13 职场文书
优秀教师工作感言
2014/02/16 职场文书
电信营业员岗位职责
2015/04/14 职场文书
golang slice元素去重操作
2021/04/30 Golang
Pandas数据类型之category的用法
2021/06/28 Python
Python集合的基础操作
2021/11/01 Python
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS