JavaScript html5 canvas画布中删除一个块区域的方法

本文实例讲述了html5 canvas画布中删除一个块区域的方法。分享给大家供大家参考,具体如下:

运行效果截图如下:

附:图中,黑色小方块即为删除掉的块区域

具体代码如下:

index.html:

canvas中删除一块区域

#canvas {

background:black; margin-top:100px; margin-left:200px;

}

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);

}

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程序设计有所帮助。相关阅读:

IE中div被视频遮住(用embed来内嵌视频)的解决方法

C#数字图像处理之图像缩放的方法

Win10桌面怎么使用英雄动态壁纸?

在Mac设备上用到全角空格如何切换mac全角半角

SUSE Linux下源码编译方式安装MySQL 5.6过程分享

php判断页面是否是微信打开的示例(微信打开网页)

简单的php文件上传(实例)

phpMyAdmin自动登录和取消自动登录的配置方法

基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法

由浅入深剖析Angular表单验证

浅谈js里面的InttoStr和StrtoInt

CSS3 Columns分列式布局方法简介

HTML5中实现拖放效果无须借助javascript

iOS的UI开发中UITabBarControlle的基本使用教程

php画布怎么清除,JavaScript_JavaScript html5 canvas画布中删除一个块区域的方法,本文实例讲述了html5 canvas画布 - phpStudy...相关推荐

  1. 注册按钮php,JavaScript_javascript实现十秒钟后注册按钮可点击的方法,本文实例讲述了javascript实现十 - phpStudy...

    javascript实现十秒钟后注册按钮可点击的方法 本文实例讲述了javascript实现十秒钟后注册按钮可点击的方法.分享给大家供大家参考.具体分析如下: 1.注册按钮初始状态为不可用,disab ...

  2. php网页轮播图,JavaScript_JavaScript实现图片轮播的方法,本文实例讲述了JavaScript实现图 - phpStudy...

    JavaScript实现图片轮播的方法 本文实例讲述了JavaScript实现图片轮播的方法.分享给大家供大家参考.具体如下: 这里没有使用到JQUERY,没有过渡效果,图片可自行替换 . test2 ...

  3. canvas save()和canvas restore()状态的保存和恢复使用方法及实例

    canvas.save()用来保存先前状态的 canvas.restore()用来恢复之前保存的状态 注:两种方法必须搭配使用,否则没有效果 <!DOCTYPE html> <htm ...

  4. 照片快照清除 android,如何在Android中删除和恢复照片

    对于智能手机用户而言,相机几乎变成了反射:您看到值得注意的东西,捕捉快照,并永久保留该内存.但是,如果这种特殊的花销不是永远值得的,那该怎么办呢?众所周知,纸上的快照难以分离,但Android画廊中的 ...

  5. 如何清除ug服务器注册码,UG许可证删除不掉的解决方法

    UG许可证删除不掉的解决方法 1.查看你的计算机名,注意必须是"英文或数字".右击桌面"我的电脑"\属性\计算机名\更改,重新给一个计算机名,确定后提示&quo ...

  6. 浏览器html5临时文件,电脑中清理浏览器临时文件夹的方法

    用户在电脑中浏览网页的时候,浏览器都会自动下载一些文件,虽然这些文件是临时的,但是如果长时间不清理,这些临时文件就会占用磁盘空间.接下来,系统城小编就带大家看看电脑中清理浏览器临时文件夹的具体方法. ...

  7. c语言a 寻路算法,JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例

    本文实例讲述了JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法.分享给大家供大家参考,具体如下: 完整实例代码如下: A*寻路算法 #stage { border: 1px solid lig ...

  8. java drawimage api_HTML5 Canvas API中drawImage()方法的使用实例

    drawImage()是一个很关键的方法,它可以引入图像.画布.视频,并对其进行缩放或裁剪. 一共有三种表现形式: 语法 1 JavaScript Code复制内容到剪贴板 context.drawI ...

  9. vue 画布插件_一个Vue.js插件,用于使用EaselJS控制HTML5画布

    vue 画布插件 vue-easeljs (vue-easeljs) A Vue.js plugin to control an HTML5 canvas using EaselJS. 一个Vue.j ...

最新文章

  1. TensorFlow 2.0来了,为什么他却说“深度学习框架之争,现在谈结果为时尚早”?...
  2. 2022/4/3刷题
  3. spring和CXF集成来实现webservices
  4. 【DP】回文词 (ssl 1813)
  5. SpringBoot应用监控——Actuator安全隐患及解决方案
  6. 云优CMS采集不需要云优CMS授权
  7. Python解运筹学问题
  8. 怎么评判网络舆情分析系统好不好的指标标准详解
  9. mimics能导出什么格式_mimics教程
  10. solidworks2015安装教程
  11. 蓝桥杯试题c语言蛇形填数,2020十月份蓝桥杯B组省赛题解大全(害!附题面文件和部分代码~)...
  12. IOS开发之——硬件开发-传感器概述(01)
  13. mysql order by file_深聊MySQL,从入门到入坟之:如何让order by、group by查询速度飞起来...
  14. 题目 1567: 超级玛丽
  15. html text-decoration,text-decoration 属性
  16. 2020年INTERNET考试题
  17. 让JAVA活起来----很欣赏(JMF媒体框架)
  18. 苹果Macbook Pro 13 M1芯片安装Pillow的正确姿势
  19. 一拖二组装设备,一台信捷XD5-60T10-E系列PLC控制两台组装检测设备,扩展5个32点输入输出扩展模块
  20. filter过滤函数的使用

热门文章

  1. 怎么判断两张图片是否完全相同,通过读取图片内容进行对比
  2. 【LTE基础知识】SGLTE, SVLTE, CSFB, VoLTE
  3. 苏宁亮剑拼购、二手房,就问拼多多和房产中介怕不怕
  4. linux 命令:uname 详解
  5. NLPIR.user Not valid license or your license expired! Please feel free to contact pipy_zhang@msn.com
  6. 植物大战僵尸鼠标状态
  7. xshell的主题设置及字体改变
  8. myeclipse 集成 jbpm
  9. 打电话时长记录 CTCallCenter
  10. 九、Pytest框架 — Pytest框架的setUp()和tearDown()函数