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同时控制四张图片的伸缩实现代码
Apr 19 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
May 10 Javascript
解析Javascript中中括号“[]”的多义性
Dec 03 Javascript
Jquery实现自定义tooltip示例代码
Feb 12 Javascript
AngularJS控制器controller正确的通信的方法
Jan 25 Javascript
JS上传图片预览插件制作(兼容到IE6)
Aug 07 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
Aug 19 Javascript
Vue表单实例代码
Sep 05 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
Oct 10 Javascript
详解vue-cli + webpack 多页面实例配置优化方法
Jul 13 Javascript
js中apply与call简单用法详解
Nov 06 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
Aug 10 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
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
2012/06/14 Javascript
javascript dom追加内容实现示例
2013/09/21 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
JS和JQ的event对象区别分析
2014/11/24 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
javaScript+turn.js实现图书翻页效果实例代码
2017/02/16 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
Vue.js实现数据响应的方法
2018/08/13 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
python实现静态web服务器
2019/09/03 Python
详解Python实现进度条的4种方式
2020/01/15 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
航海技术专业毕业生求职信
2014/04/06 职场文书
幼儿园标语大全
2014/06/19 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
超市采购员岗位职责
2015/04/07 职场文书
河童之夏观后感
2015/06/11 职场文书
python 提取html文本的方法
2021/05/20 Python