JavaScript html5 canvas画布中删除一个块区域的方法


Posted in Javascript onJanuary 26, 2016

本文实例讲述了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');
  dyl.rect(dyl.createColor(), 150, 150, 200, 200, 0.5);
  for(var i=0; i<10; i++) {
   dyl.clearRect(150 + i*20, 150 + i*20, 20, 20);
  }
 </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的面向对象的特性实现限制试用期
Aug 04 Javascript
jQuery中Dom的基本操作小结
Jan 23 Javascript
javascript设置页面背景色及背景图片的方法
Dec 29 Javascript
javascript显示系统当前时间代码
Dec 29 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
Sep 05 Javascript
深入浅析JavaScript中的RegExp对象
Sep 18 Javascript
VUE2实现事件驱动弹窗示例
Oct 21 Javascript
vue + element-ui实现简洁的导入导出功能
Dec 22 Javascript
微信小程序Getuserinfo解决方案图解
Aug 24 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
Aug 11 Javascript
小程序如何写动态标签的实现方法
Feb 05 Javascript
js实现点击上传图片并设为模糊背景
Aug 02 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
Jan 26 #Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
Jan 26 #Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
Jan 26 #Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
Jan 26 #Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
Jan 26 #Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
Jan 26 #Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
Jan 26 #Javascript
You might like
php json_encode值中大括号与花括号区别
2013/09/30 PHP
CodeIgniter模板引擎使用实例
2014/07/15 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
2014/04/03 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
Javascript的this用法
2017/01/16 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
Js和VUE实现跑马灯效果
2020/05/25 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
python中的列表推导浅析
2014/04/26 Python
进一步理解Python中的函数编程
2015/04/13 Python
Python实现包含min函数的栈
2016/04/29 Python
Python采用Django制作简易的知乎日报API
2016/08/03 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
新郎婚宴答谢词
2014/01/19 职场文书
残疾人小组计划书
2014/04/27 职场文书
会计岗位说明书
2014/07/29 职场文书
护理见习报告范文
2014/11/03 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书