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 相关文章推荐
ajax 文件上传应用简单实现
Mar 03 Javascript
IE8 下的Js错误HTML Parsing Error...
Aug 14 Javascript
可自定义速度的js图片无缝滚动示例分享
Jan 20 Javascript
JavaScript实现搜索框的自动完成功能(一)
Feb 25 Javascript
JQuery日期插件datepicker的使用方法
Mar 03 Javascript
基于javascript实现句子翻牌网页版小游戏
Mar 23 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
Aug 20 Javascript
Vue.js快速入门教程
Sep 07 Javascript
Bootstrap popover用法详解
Dec 22 Javascript
jQuery实现验证码功能
Mar 17 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
Feb 13 Javascript
JavaScript代码简化技巧实例解析
Sep 09 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个人网站架设连环讲(一)
2006/10/09 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
2015/12/14 PHP
jquery中获得$.ajax()事件返回的值并添加事件的方法
2010/04/15 Javascript
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
2014/10/11 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
原生JS实现ajax与ajax的跨域请求实例
2017/12/01 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
python插入排序算法实例分析
2015/07/03 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
分享几道你可能遇到的python面试题
2017/07/24 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
Python关于反射的实例代码分享
2020/02/20 Python
Python实现GIF图倒放
2020/07/16 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
大学毕业感言50字
2014/02/07 职场文书
关于环保的建议书400字
2014/03/12 职场文书
班班通校本培训方案
2014/03/12 职场文书
社区健康教育实施方案
2014/03/18 职场文书
企业2014年度工作总结
2014/12/10 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
小石潭记导游词
2015/02/03 职场文书
小学同学聚会感言
2015/07/30 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB
Android中的Launch Mode详情
2022/06/05 Java/Android