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 相关文章推荐
JavaScript对象、属性、事件手册集合方便查询
Jul 04 Javascript
jquery获取一组checkbox的值(实例代码)
Nov 04 Javascript
jQuery入门基础知识学习指南
Aug 14 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
Sep 14 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
Oct 09 Javascript
Angular2 多级注入器详解及实例
Oct 30 Javascript
Bootstrap CSS布局之按钮
Dec 17 Javascript
js实现简单的获取验证码按钮效果
Mar 03 Javascript
Vue+axios 实现http拦截及路由拦截实例
Apr 25 Javascript
vue中v-for加载本地静态图片方法
Mar 03 Javascript
基于Node.js搭建hexo博客过程详解
Jun 25 Javascript
详解关于Vue单元测试的几个坑
Apr 26 Javascript
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学习之 认清变量的作用范围
2010/01/26 PHP
php 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
PHP查找一列有序数组是否包含某值的方法
2020/02/07 PHP
Dom在ajax技术中的作用说明
2010/10/25 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
2016/03/22 Javascript
PHP实现本地图片上传和验证功能
2017/02/27 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
小程序实现多个选项卡切换
2020/06/19 Javascript
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
Python嵌套列表转一维的方法(压平嵌套列表)
2018/07/03 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
Python3数字求和的实例
2019/02/19 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
python中比较两个列表的实例方法
2019/07/04 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
用Python配平化学方程式的方法
2019/07/20 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
Python可变参数会自动填充前面的默认同名参数实例
2019/11/18 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
2020/11/10 Python
房地产销售大学生自我评价分享
2013/11/11 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
避暑山庄导游词
2015/02/04 职场文书
网络研修心得体会
2016/01/08 职场文书
关于的python五子棋的算法
2022/05/02 Python