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 支持链式调用的异步调用框架Async.Operation
Aug 04 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
Sep 03 Javascript
简单介绍JavaScript的变量和数据类型
Jun 03 Javascript
jquery实现的树形目录实例
Jun 26 Javascript
jquery获取url参数及url加参数的方法
Oct 26 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
Nov 17 Javascript
js判断某个字符出现的次数的简单实例
Jun 03 Javascript
深入分析javascript中的错误处理机制
Jul 17 Javascript
jquery平滑滚动到顶部插件使用详解
May 08 jQuery
纯JavaScript实现实时反馈系统时间
Oct 26 Javascript
jQuery插件实现的日历功能示例【附源码下载】
Sep 07 jQuery
JS计算斐波拉切代码实例
Sep 12 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编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
php之可变变量的实例详解
2017/09/12 PHP
深入理解PHP中mt_rand()随机数的安全
2017/10/12 PHP
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
关于js函数解释(包括内嵌,对象等)
2016/11/20 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
微信小程序实现左侧滑栏过程解析
2019/08/26 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
2019/09/26 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
Python中的自定义函数学习笔记
2014/09/23 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
2017/01/20 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
Python  Django 母版和继承解析
2019/08/09 Python
python获取Linux发行版名称
2019/08/30 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
授权委托书怎么写
2014/09/25 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
复试通知单模板
2015/04/24 职场文书
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL