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之appendChild、insertBefore和insertAfter使用说明
Dec 30 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
Dec 16 Javascript
jQuery获取和设置表单元素的方法
Feb 14 Javascript
jquery获取复选框被选中的值
Mar 22 Javascript
Bootstrap每天必学之下拉菜单
Nov 25 Javascript
angularJS深拷贝详解
Mar 23 Javascript
详解Vuejs2.0之异步跨域请求
Apr 20 Javascript
angularjs实现猜大小功能
Oct 23 Javascript
深入浅析javascript函数中with
Oct 28 Javascript
深入了解query和params的使用区别
Jun 24 Javascript
详细教你微信公众号正文页SVG交互开发技巧
Jul 25 Javascript
vue随机验证码组件的封装实现
Feb 19 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 SQL之where语句生成器
2009/03/24 PHP
php 正确解码javascript中通过escape编码后的字符
2010/01/28 PHP
用PHP书写安全的脚本代码
2012/02/05 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
javascript 函数使用说明
2010/04/07 Javascript
Jvascript学习实践案例(开发常用)
2012/06/25 Javascript
一个支付页面DEMO附截图
2014/07/22 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
2015/12/29 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
jQuery表单事件实例代码分享
2016/08/18 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
关于Mac下安装nodejs、npm和cnpm的教程
2018/04/11 NodeJs
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
javascript 函数的暂停和恢复实例详解
2020/04/25 Javascript
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
Django的CVB实例详解
2020/02/10 Python
Django之富文本(获取内容,设置内容方式)
2020/05/21 Python
python右对齐的实例方法
2020/07/05 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
编辑找工作求职信范文
2013/12/16 职场文书
小学教师节活动方案
2014/01/31 职场文书
教师节慰问信
2015/02/15 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书
springboot如何初始化执行sql语句
2021/06/22 Java/Android
详解redis在微服务领域的贡献
2021/10/16 Redis
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android