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 相关文章推荐
Jquery选中或取消radio示例
Sep 29 Javascript
jqueyr判断checkbox组的选中(示例代码)
Nov 08 Javascript
jquery获得同源iframe内body下标签的值的方法
Sep 25 Javascript
javascript进行四舍五入方法汇总
Dec 16 Javascript
jquery中EasyUI使用技巧小结
Feb 10 Javascript
JS简单实现点击复制链接的方法
Aug 03 Javascript
JQuery动态添加Select的Option元素实现方法
Aug 29 Javascript
RequireJs的使用详解
Feb 19 Javascript
原生JS实现幻灯片
Feb 22 Javascript
JS库之Particles.js中文开发手册及参数详解
Sep 13 Javascript
JavaScript时间戳与时间日期间相互转换
Dec 11 Javascript
Javascript前端下载后台传来的文件流代码实例
Aug 18 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版
2012/04/20 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
Yii的Srbac插件用法详解
2016/07/14 PHP
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
jQuery实现表单提交时判断的方法
2014/12/13 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
2015/08/12 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
vue-cli3中vue.config.js配置教程详解
2019/05/29 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
Python图像处理之识别图像中的文字(实例讲解)
2018/05/10 Python
在python环境下运用kafka对数据进行实时传输的方法
2018/12/27 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
详解python播放音频的三种方法
2019/09/23 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
好邻里事迹材料
2014/01/16 职场文书
电工工作职责范本
2014/02/22 职场文书
班级出游活动计划书
2014/08/15 职场文书
与死神共舞观后感
2015/06/15 职场文书
python实现ROA算子边缘检测算法
2021/04/05 Python
python中requests库+xpath+lxml简单使用
2021/04/29 Python